From 585becfa53c9ad75c48a44f80a4b4e7fffbc03d3 Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 23 Jan 2025 20:42:17 +0100 Subject: [PATCH 01/62] Add potential implementation for wind deflection system --- .../Configs/Systems/ChimeraSystemsConfig.conf | 8 ++ .../Systems/ChimeraSystemsConfig.conf.meta | 17 ++++ addons/ballistics_prototype/addon.gproj | 22 +++++ addons/ballistics_prototype/license.txt | 18 ++++ .../ACE_Ballistics_WindDeflectionSystem.c | 90 ++++++++++++++++++ addons/ballistics_prototype/thumbnail.png | Bin 0 -> 262 bytes 6 files changed, 155 insertions(+) create mode 100644 addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf create mode 100644 addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf.meta create mode 100644 addons/ballistics_prototype/addon.gproj create mode 100644 addons/ballistics_prototype/license.txt create mode 100644 addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c create mode 100644 addons/ballistics_prototype/thumbnail.png diff --git a/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf b/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf new file mode 100644 index 000000000..80e08f5f7 --- /dev/null +++ b/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf @@ -0,0 +1,8 @@ +SystemSettings : "{45C53F06BA17238D}configs/Systems/SystemsConfig.conf" { + Systems { + ACE_Ballistics_WindDeflectionSystem "{646E0D3EF416BE9A}" { + SystemLocation Server + SystemPoints 256 + } + } +} \ No newline at end of file diff --git a/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf.meta b/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf.meta new file mode 100644 index 000000000..06c5eb99e --- /dev/null +++ b/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{86E953538A28A98D}Configs/Systems/ChimeraSystemsConfig.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics_prototype/addon.gproj b/addons/ballistics_prototype/addon.gproj new file mode 100644 index 000000000..c00bf59be --- /dev/null +++ b/addons/ballistics_prototype/addon.gproj @@ -0,0 +1,22 @@ +GameProject { + ID "ACE_BallisticsPrototype" + GUID "646E06BB853A7778" + TITLE "ACE Ballistics Prototype" + Dependencies { + "58D0FB3206B6F859" "60C4CE4888FF4621" + } + Configurations { + GameProjectConfig PC { + } + GameProjectConfig XBOX_ONE { + } + GameProjectConfig XBOX_SERIES { + } + GameProjectConfig PS4 { + } + GameProjectConfig PS5 { + } + GameProjectConfig HEADLESS { + } + } +} \ No newline at end of file diff --git a/addons/ballistics_prototype/license.txt b/addons/ballistics_prototype/license.txt new file mode 100644 index 000000000..6ebf24cf1 --- /dev/null +++ b/addons/ballistics_prototype/license.txt @@ -0,0 +1,18 @@ +ACE Anvil - An experimental realism mod for Arma Reforger +Copyright (C) 2024 acemod + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +When publishing a derivative of this product you may not use a name that +might create the impression that your version is an official release. + +A full copy of this license can be found at the following address: +https://github.com/acemod/ACE-Anvil/blob/master/LICENSE. diff --git a/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c b/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c new file mode 100644 index 000000000..4b761c90f --- /dev/null +++ b/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------------------------ +class ACE_Ballistics_WindDeflectionSystem : GameSystem +{ + protected TimeAndWeatherManagerEntity m_pWeatherManager; + protected ref array m_aProjectiles = {}; + protected static const float MIN_PROJECTILE_SPEED_MPS_SQ = 10000; + + //------------------------------------------------------------------------------------------------ + override protected void OnInit() + { + super.OnInit(); + + ChimeraWorld world = GetGame().GetWorld(); + if (world) + m_pWeatherManager = world.GetTimeAndWeatherManager(); + + SCR_BaseGameMode gameMode = SCR_BaseGameMode.Cast(GetGame().GetGameMode()); + if (gameMode) + gameMode.GetOnPlayerSpawned().Insert(RegisterPlayerCharacter); + + if (m_aProjectiles.IsEmpty()) + Enable(false); + } + + //------------------------------------------------------------------------------------------------ + protected void RegisterPlayerCharacter(int playerId, IEntity controlledEntity) + { + EventHandlerManagerComponent eventHandlerManager = EventHandlerManagerComponent.Cast(controlledEntity.FindComponent(EventHandlerManagerComponent)); + if (!eventHandlerManager) + return; + + eventHandlerManager.RegisterScriptHandler("OnProjectileShot", this, OnProjectileShot); + } + + //------------------------------------------------------------------------------------------------ + protected void OnProjectileShot(int playerID, BaseWeaponComponent weapon, IEntity entity) + { + if (!entity) + return; + + ShellMoveComponent projectile = ShellMoveComponent.Cast(entity.FindComponent(ShellMoveComponent)); + if (!projectile) + return; + + RegisterProjectile(projectile); + } + + //------------------------------------------------------------------------------------------------ + void RegisterProjectile(notnull ProjectileMoveComponent projectile) + { + m_aProjectiles.Insert(projectile); + + if (!IsEnabled()) + Enable(true); + } + + //------------------------------------------------------------------------------------------------ + override protected void OnUpdate(ESystemPoint point) + { + super.OnUpdate(point); + + float timeSlice = GetGame().GetWorld().GetTimeSlice(); + vector windVelocity = m_pWeatherManager.GetWindSpeed() * vector.FromYaw(m_pWeatherManager.GetWindDirection()); + float airFriction = 0.0012588; + + for (int i = m_aProjectiles.Count() - 1; i >= 0; i--) + { + ProjectileMoveComponent projectile = m_aProjectiles[i]; + if (!projectile) + { + m_aProjectiles.Remove(i); + continue; + } + + vector velocity = projectile.GetVelocity(); + if (velocity.LengthSq() < MIN_PROJECTILE_SPEED_MPS_SQ) + { + m_aProjectiles.Remove(i); + continue; + } + + vector relVelocity = velocity - windVelocity; + vector dragForce = 0.5 * airFriction * relVelocity.LengthSq() * relVelocity.Normalized(); + //projectile.SetVelocity(velocity + timeSlice * dragForce / mass); + } + + if (m_aProjectiles.IsEmpty()) + Enable(false); + } +} diff --git a/addons/ballistics_prototype/thumbnail.png b/addons/ballistics_prototype/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..3d428314255be3fa5da375c0410a5c93cdcf6ade GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=XFXjULn>~)y?&baumVp*qI4>! zSi%&!-P!AVF0op*RXcU9nj+RLBKYt96laBlH*8#hdcfd-)|dIyi@L5|dinNekf5OP z=0y8dR$I0J{_zet9ytu1GJlfK_(zU-QK zYiC{OE#=?(n*wgLReK-U%zJI$&aZCu--0+-U;CHH_C!Sf-qn9+4)oq(eYdvxl;*87 zk&AVk|DNf{&($jx-|@?`ad*S_AJtQL!yLpAaa>w5J&dc=bDj}M%+uA+Wt~$(698K7 BZCd~U literal 0 HcmV?d00001 From 210d40780a14a1b629d1d6b96c0b380e47d86708 Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 23 Jan 2025 20:52:03 +0100 Subject: [PATCH 02/62] Fix sign of drag force --- .../Systems/ACE_Ballistics_WindDeflectionSystem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c b/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c index 4b761c90f..25819a6bf 100644 --- a/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c +++ b/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c @@ -61,7 +61,7 @@ class ACE_Ballistics_WindDeflectionSystem : GameSystem float timeSlice = GetGame().GetWorld().GetTimeSlice(); vector windVelocity = m_pWeatherManager.GetWindSpeed() * vector.FromYaw(m_pWeatherManager.GetWindDirection()); - float airFriction = 0.0012588; + float airFriction = 0.0012588; // --- To Do: Calculate from attributes in ProjectileMoveComponent for (int i = m_aProjectiles.Count() - 1; i >= 0; i--) { @@ -80,7 +80,7 @@ class ACE_Ballistics_WindDeflectionSystem : GameSystem } vector relVelocity = velocity - windVelocity; - vector dragForce = 0.5 * airFriction * relVelocity.LengthSq() * relVelocity.Normalized(); + vector dragForce = -0.5 * airFriction * relVelocity.LengthSq() * relVelocity.Normalized(); //projectile.SetVelocity(velocity + timeSlice * dragForce / mass); } From 3cf7882bd97925e97e1a13fe4f29f7b58fb2bb4e Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 20:35:49 +0100 Subject: [PATCH 03/62] Rename ballistics folder --- .../Configs/Systems/ChimeraSystemsConfig.conf | 0 .../Configs/Systems/ChimeraSystemsConfig.conf.meta | 0 .../addon.gproj | 0 .../license.txt | 0 .../Systems/ACE_Ballistics_WindDeflectionSystem.c | 0 .../thumbnail.png | Bin 6 files changed, 0 insertions(+), 0 deletions(-) rename addons/{ballistics_prototype => ballistics}/Configs/Systems/ChimeraSystemsConfig.conf (100%) rename addons/{ballistics_prototype => ballistics}/Configs/Systems/ChimeraSystemsConfig.conf.meta (100%) rename addons/{ballistics_prototype => ballistics}/addon.gproj (100%) rename addons/{ballistics_prototype => ballistics}/license.txt (100%) rename addons/{ballistics_prototype => ballistics}/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c (100%) rename addons/{ballistics_prototype => ballistics}/thumbnail.png (100%) diff --git a/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf b/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf similarity index 100% rename from addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf rename to addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf diff --git a/addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf.meta b/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf.meta similarity index 100% rename from addons/ballistics_prototype/Configs/Systems/ChimeraSystemsConfig.conf.meta rename to addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf.meta diff --git a/addons/ballistics_prototype/addon.gproj b/addons/ballistics/addon.gproj similarity index 100% rename from addons/ballistics_prototype/addon.gproj rename to addons/ballistics/addon.gproj diff --git a/addons/ballistics_prototype/license.txt b/addons/ballistics/license.txt similarity index 100% rename from addons/ballistics_prototype/license.txt rename to addons/ballistics/license.txt diff --git a/addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c similarity index 100% rename from addons/ballistics_prototype/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c rename to addons/ballistics/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c diff --git a/addons/ballistics_prototype/thumbnail.png b/addons/ballistics/thumbnail.png similarity index 100% rename from addons/ballistics_prototype/thumbnail.png rename to addons/ballistics/thumbnail.png From 5edb306ceb0b6cb5463bc247a382fe07221c872b Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 20:37:05 +0100 Subject: [PATCH 04/62] Rename ballistics project --- addons/ballistics/addon.gproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/ballistics/addon.gproj b/addons/ballistics/addon.gproj index c00bf59be..2900a4dc2 100644 --- a/addons/ballistics/addon.gproj +++ b/addons/ballistics/addon.gproj @@ -1,7 +1,7 @@ GameProject { - ID "ACE_BallisticsPrototype" + ID "ACE_Ballistics" GUID "646E06BB853A7778" - TITLE "ACE Ballistics Prototype" + TITLE "ACE Ballistics" Dependencies { "58D0FB3206B6F859" "60C4CE4888FF4621" } From 5b6a7462914ca6cbfbf3b7c37674ada878ff8f34 Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 20:40:29 +0100 Subject: [PATCH 05/62] Remove old wind deflection system prototype --- .../Configs/Systems/ChimeraSystemsConfig.conf | 8 -- .../Systems/ChimeraSystemsConfig.conf.meta | 17 ---- .../ACE_Ballistics_WindDeflectionSystem.c | 90 ------------------- 3 files changed, 115 deletions(-) delete mode 100644 addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf delete mode 100644 addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf.meta delete mode 100644 addons/ballistics/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c diff --git a/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf b/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf deleted file mode 100644 index 80e08f5f7..000000000 --- a/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf +++ /dev/null @@ -1,8 +0,0 @@ -SystemSettings : "{45C53F06BA17238D}configs/Systems/SystemsConfig.conf" { - Systems { - ACE_Ballistics_WindDeflectionSystem "{646E0D3EF416BE9A}" { - SystemLocation Server - SystemPoints 256 - } - } -} \ No newline at end of file diff --git a/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf.meta b/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf.meta deleted file mode 100644 index 06c5eb99e..000000000 --- a/addons/ballistics/Configs/Systems/ChimeraSystemsConfig.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{86E953538A28A98D}Configs/Systems/ChimeraSystemsConfig.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c deleted file mode 100644 index 25819a6bf..000000000 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Systems/ACE_Ballistics_WindDeflectionSystem.c +++ /dev/null @@ -1,90 +0,0 @@ -//------------------------------------------------------------------------------------------------ -class ACE_Ballistics_WindDeflectionSystem : GameSystem -{ - protected TimeAndWeatherManagerEntity m_pWeatherManager; - protected ref array m_aProjectiles = {}; - protected static const float MIN_PROJECTILE_SPEED_MPS_SQ = 10000; - - //------------------------------------------------------------------------------------------------ - override protected void OnInit() - { - super.OnInit(); - - ChimeraWorld world = GetGame().GetWorld(); - if (world) - m_pWeatherManager = world.GetTimeAndWeatherManager(); - - SCR_BaseGameMode gameMode = SCR_BaseGameMode.Cast(GetGame().GetGameMode()); - if (gameMode) - gameMode.GetOnPlayerSpawned().Insert(RegisterPlayerCharacter); - - if (m_aProjectiles.IsEmpty()) - Enable(false); - } - - //------------------------------------------------------------------------------------------------ - protected void RegisterPlayerCharacter(int playerId, IEntity controlledEntity) - { - EventHandlerManagerComponent eventHandlerManager = EventHandlerManagerComponent.Cast(controlledEntity.FindComponent(EventHandlerManagerComponent)); - if (!eventHandlerManager) - return; - - eventHandlerManager.RegisterScriptHandler("OnProjectileShot", this, OnProjectileShot); - } - - //------------------------------------------------------------------------------------------------ - protected void OnProjectileShot(int playerID, BaseWeaponComponent weapon, IEntity entity) - { - if (!entity) - return; - - ShellMoveComponent projectile = ShellMoveComponent.Cast(entity.FindComponent(ShellMoveComponent)); - if (!projectile) - return; - - RegisterProjectile(projectile); - } - - //------------------------------------------------------------------------------------------------ - void RegisterProjectile(notnull ProjectileMoveComponent projectile) - { - m_aProjectiles.Insert(projectile); - - if (!IsEnabled()) - Enable(true); - } - - //------------------------------------------------------------------------------------------------ - override protected void OnUpdate(ESystemPoint point) - { - super.OnUpdate(point); - - float timeSlice = GetGame().GetWorld().GetTimeSlice(); - vector windVelocity = m_pWeatherManager.GetWindSpeed() * vector.FromYaw(m_pWeatherManager.GetWindDirection()); - float airFriction = 0.0012588; // --- To Do: Calculate from attributes in ProjectileMoveComponent - - for (int i = m_aProjectiles.Count() - 1; i >= 0; i--) - { - ProjectileMoveComponent projectile = m_aProjectiles[i]; - if (!projectile) - { - m_aProjectiles.Remove(i); - continue; - } - - vector velocity = projectile.GetVelocity(); - if (velocity.LengthSq() < MIN_PROJECTILE_SPEED_MPS_SQ) - { - m_aProjectiles.Remove(i); - continue; - } - - vector relVelocity = velocity - windVelocity; - vector dragForce = -0.5 * airFriction * relVelocity.LengthSq() * relVelocity.Normalized(); - //projectile.SetVelocity(velocity + timeSlice * dragForce / mass); - } - - if (m_aProjectiles.IsEmpty()) - Enable(false); - } -} From 716fb2c9b48b2e52a3ce618eeabd1ae6f0634f41 Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 20:58:51 +0100 Subject: [PATCH 06/62] Increase wind deflection of bullets --- .../Prefabs/Weapons/Core/Ammo_Bullet_Base.et | 8 ++++++++ .../Weapons/Core/Ammo_Bullet_Base.et.meta | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et create mode 100644 addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta diff --git a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et new file mode 100644 index 000000000..ac4e2ec7d --- /dev/null +++ b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et @@ -0,0 +1,8 @@ +Projectile { + ID "DA5C6308000CDEF2" + components { + ShellMoveComponent "{851AA4A2AE0A5691}" { + SideAirDragScale 44 + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta new file mode 100644 index 000000000..60c6c6bda --- /dev/null +++ b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{67FED88E5085F63F}Prefabs/Weapons/Core/Ammo_Bullet_Base.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file From 14090cf8e284caa597ad0b3d9a653b78319f17bb Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 21:08:07 +0100 Subject: [PATCH 07/62] Add ACE_VisualisedBallisticConfig for computing ballistic table for a projectile --- .../Configs/ACE_VisualisedBallisticConfig.c | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c new file mode 100644 index 000000000..21eabae37 --- /dev/null +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -0,0 +1,159 @@ +class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig +{ + protected static const ref array WIND_SPEEDS = {4, 6, 8}; + protected static const float MAX_DROP = -30.0; + + //------------------------------------------------------------------------------------------------ + void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) + { + m_sProjectilePrefab = projectilePrefab; + m_sDisplayedText = FilePath.StripExtension(FilePath.StripPath(projectilePrefab)); + m_eUnitType = unitType; + m_fProjectileInitSpeedCoef = m_eUnitType; // Used as storage for comparison on SCR_BallisticData + m_iRangeStep = 50; + m_iMinRange = 100; + m_iMaxRange = 1500; + m_iElevationChangeDownRange = 50; + m_fStandardDispersion = 100; + m_sAmmoTypeQuadName = "ammotype-fmj"; + } + + //------------------------------------------------------------------------------------------------ + override bool GenerateBallisticData() + { + if (VerifyDataExistence(m_iBallisticDataId)) + return true; + + float initialSpeed = ACE_BulletTools.GetInitialSpeed(m_sProjectilePrefab); + IEntity dummy = GetGame().SpawnEntityPrefab(Resource.Load(m_sProjectilePrefab), GetGame().GetWorld()); + ProjectileMoveComponent moveComponent = ProjectileMoveComponent.Cast(dummy.FindComponent(ProjectileMoveComponent)); + + array> ballisticValues = {}; + float drop = -0.1; + float zeroDrop; + + for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) + { + array row = {range}; + row.Resize(2 + WIND_SPEEDS.Count()); + float firstDrop = 0.0; + bool firstDropSet = false; + + foreach (int i, float windSpeed : WIND_SPEEDS) + { + float windage; + + if (!ComputeDropAndWindage(moveComponent, range, initialSpeed, windSpeed, drop, windage)) + break; + + if (!firstDropSet) + { + if (drop < MAX_DROP) + { + // Replace invalid drops by zeroDrop to get them replaced by dash + firstDrop = zeroDrop; + break; + } + + firstDrop = drop; + firstDropSet = true; + } + + row[2 + i] = ACE_Math.Round(windage, 1); + } + + if (ballisticValues.IsEmpty()) + zeroDrop = firstDrop; + else + row[1] = ACE_Math.Round(firstDrop - zeroDrop, 1); + + ballisticValues.Insert(row); + } + + SCR_EntityHelper.DeleteEntityAndChildren(dummy); + + SCR_BallisticData ballisticData = new SCR_BallisticData(ballisticValues, m_sProjectilePrefab, m_bDirectFireMode, m_iRangeStep, m_fProjectileInitSpeedCoef); + if (!SCR_BallisticData.s_aBallistics) + SCR_BallisticData.s_aBallistics = {}; + + SCR_BallisticData.s_aBallistics.Insert(ballisticData); + m_iBallisticDataId = SCR_BallisticData.s_aBallistics.Count() - 1; + return true; + } + + //------------------------------------------------------------------------------------------------ + //! Optimize drop with secant method to match targetRange + //! Return drop and windage in angle + protected bool ComputeDropAndWindage(ProjectileMoveComponent moveComponent, float targetRange, float initialSpeed, float windSpeed, inout float drop, out float windage) + { + ACE_Ballistics_DropResidual fn = new ACE_Ballistics_DropResidual(moveComponent, targetRange, initialSpeed, windSpeed); + ACE_MathTools_RootResult solution = ACE_MathTools.Secant(fn, drop + 0.1, drop - 0.1, ftol: 0.1, xtol: 0.0); + drop = MilliradiansToUnit(solution.m_fRoot); + windage = MilliradiansToUnit(fn.GetWindageResult()); + return solution.m_bConverged; + } + + //------------------------------------------------------------------------------------------------ + protected vector ComputeProjectileSimulationResult(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float drop) + { + return moveComponent.GetProjectileSimulationResult( + vector.Zero, // initPosition + initialSpeed, // initSpeed + Math.RAD2DEG * 1e-3 * -drop, // initElevationAngle + 0, // initAzimuth + {windSpeed, 0, 0}, // windVelocity + 0, // targetHeight + 10, // maxSimulationTime + ); + } + + //------------------------------------------------------------------------------------------------ + protected float MilliradiansToUnit(float value) + { + if (m_eUnitType == SCR_EOpticsAngleUnits.MILLIRADIANS) + return value; + + return SCR_Math.ConvertFromRadians(1e-3 * value, m_eUnitType); + } +} + +//------------------------------------------------------------------------------------------------ +class ACE_Ballistics_DropResidual : ACE_MathTools_FunctionBase +{ + protected ProjectileMoveComponent m_MoveComponent; + protected float m_fTargetRange; + protected float m_fInitialSpeed; + protected vector m_vWindVelocity; + protected vector m_fOffset; + + //------------------------------------------------------------------------------------------------ + void ACE_Ballistics_DropResidual(ProjectileMoveComponent moveComponent, float targetRange, float initialSpeed, float windSpeed) + { + m_fTargetRange = targetRange; + m_MoveComponent = moveComponent; + m_fInitialSpeed = initialSpeed; + m_vWindVelocity = {windSpeed, 0, 0}; + } + + //------------------------------------------------------------------------------------------------ + //! Return residual between computed range for the drop x in mrad and the targetRange + override float Eval(float x) + { + m_fOffset = m_MoveComponent.GetProjectileSimulationResult( + vector.Zero, // initPosition + m_fInitialSpeed, // initSpeed + Math.RAD2DEG * 1e-3 * -x, // initElevationAngle + 0, // initAzimuth + m_vWindVelocity, // windVelocity + 0, // targetHeight + 10, // maxSimulationTime + ); + return m_fOffset[2] - m_fTargetRange; + } + + //------------------------------------------------------------------------------------------------ + float GetWindageResult() + { + return 1e3 * Math.Atan2(m_fOffset[0], m_fOffset[2]); + } +} From 3b9d3cf3cf70364d143bf281748ebaf73fd09ede Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 21:10:00 +0100 Subject: [PATCH 08/62] Add ACE_BallisticTableComponent for compiling pages of currently used weapons --- .../Gadgets/ACE_BallisticTableComponent.c | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c new file mode 100644 index 000000000..e95f7f2c9 --- /dev/null +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------------------------ +class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass +{ + [Attribute(SCR_Enum.GetDefault(SCR_EOpticsAngleUnits.MILLIRADIANS), uiwidget: UIWidgets.ComboBox, enums: ParamEnumArray.FromEnum(SCR_EOpticsAngleUnits))] + protected SCR_EOpticsAngleUnits m_eUnitType; + + //------------------------------------------------------------------------------------------------ + void UpdateBallisticData() + { + m_aBallisticPages.Clear(); + + SCR_ChimeraCharacter player = SCR_ChimeraCharacter.Cast(SCR_PlayerController.GetLocalControlledEntity()); + if (!player) + return; + + array weapons = {}; + player.GetWeaponManager().GetWeapons(weapons); + array allBulletPrefab = {}; + + foreach (BaseWeaponComponent weapon : weapons) + { + if (weapon.GetWeaponType() == EWeaponType.WT_HANDGUN) + continue; + + array muzzles = {}; + weapon.GetMuzzlesList(muzzles); + + foreach (BaseMuzzleComponent muzzle : muzzles) + { + foreach (ResourceName bulletPrefab : ACE_BulletTools.GetDefaultResourceNamesFromMuzzle(muzzle)) + { + if (!allBulletPrefab.Contains(bulletPrefab)) + allBulletPrefab.Insert(bulletPrefab); + } + } + } + + m_aBallisticPages.Reserve(allBulletPrefab.Count()); + + foreach (ResourceName bulletPrefab : allBulletPrefab) + { + ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, m_eUnitType); + page.GenerateBallisticData(); + m_aBallisticPages.Insert(page); + } + } +} + +//------------------------------------------------------------------------------------------------ +class ACE_BallisticTableComponent : SCR_BallisticTableComponent +{ + //------------------------------------------------------------------------------------------------ + protected override void ModeSwitch(EGadgetMode mode, IEntity charOwner) + { + if (mode == EGadgetMode.IN_HAND) + { + ACE_BallisticTableComponentClass data = ACE_BallisticTableComponentClass.Cast(GetComponentData(GetOwner())); + if (data) + { + data.UpdateBallisticData(); + m_iNumberOfPages = data.GetNumberOfPages(); + } + } + + super.ModeSwitch(mode, charOwner); + } +} From 413b95f27a78db6f583e26bdaa210dd846d59e6f Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 21:13:29 +0100 Subject: [PATCH 09/62] Add ballistic table layouts --- .../ACE_BallisticTable_US.layout | 75 +++++++++ .../ACE_BallisticTable_US.layout.meta | 17 ++ .../ACE_BallisticTable_USSR.layout | 154 ++++++++++++++++++ .../ACE_BallisticTable_USSR.layout.meta | 17 ++ 4 files changed, 263 insertions(+) create mode 100644 addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout create mode 100644 addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout.meta create mode 100644 addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout create mode 100644 addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout.meta diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout new file mode 100644 index 000000000..294e1a57a --- /dev/null +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout @@ -0,0 +1,75 @@ +FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout" { + { + RTTextureWidgetClass "{60C8F51E9E680399}" { + Prefab "{60C8F51E9E680399}" + { + FrameWidgetClass "{60C8F51EA4C53599}" { + Prefab "{60C8F51EA4C53599}" + { + VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { + Prefab "{60CACB3CF08B74DA}" + { + HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { + Prefab "{60CACB3CDBF6E604}" + { + VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { + Prefab "{60CA76C7FD2D43DD}" + { + VerticalLayoutWidgetClass "{60CACB2315EED092}" { + Prefab "{60CACB2315EED092}" + { + GridLayoutWidgetClass "{60CACB2315EED09C}" { + Prefab "{60CACB2315EED09C}" + { + HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { + Prefab "{60CACB2315EED09A}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRADs" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED084}" { + Prefab "{60CACB2315EED084}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRADs" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED087}" { + Prefab "{60CACB2315EED087}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRADs" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED081}" { + Prefab "{60CACB2315EED081}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRADs" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout.meta b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout.meta new file mode 100644 index 000000000..b63249431 --- /dev/null +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout" + Configurations { + LayoutResourceClass PC { + } + LayoutResourceClass XBOX_ONE : PC { + } + LayoutResourceClass XBOX_SERIES : PC { + } + LayoutResourceClass PS4 : PC { + } + LayoutResourceClass PS5 : PC { + } + LayoutResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout new file mode 100644 index 000000000..7a9779cfb --- /dev/null +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout @@ -0,0 +1,154 @@ +FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/BallisticTable.layout" { + { + RTTextureWidgetClass "{60C8F51E9E680399}" { + Prefab "{60C8F51E9E680399}" + { + FrameWidgetClass "{60C8F51EA4C53599}" { + Prefab "{60C8F51EA4C53599}" + { + VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { + Prefab "{60CACB3CF08B74DA}" + { + HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { + Prefab "{60CACB3CDBF6E604}" + { + VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { + Prefab "{60CA76C7FD2D43DD}" + { + VerticalLayoutWidgetClass "{60CACB206FBC43A0}" { + Prefab "{60CACB206FBC43A0}" + { + GridLayoutWidgetClass "{60CACB2005A3A282}" { + Prefab "{60CACB2005A3A282}" + { + HorizontalLayoutWidgetClass "{60CACB20278C4D64}" { + Prefab "{60CACB20278C4D64}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Target"\ + "Range" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2005A3A28B}" { + Prefab "{60CACB2005A3A28B}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Bullet"\ + "Drop" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2005A3A28E}" { + Prefab "{60CACB2005A3A28E}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Wind"\ + "4 m/s" + } + } + } + HorizontalLayoutWidgetClass "{60CACB21CD9DB8CA}" { + Prefab "{60CACB21CD9DB8CA}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Wind"\ + "6 m/s" + } + } + } + HorizontalLayoutWidgetClass "{60CACB21CD25DE44}" { + Prefab "{60CACB21CD25DE44}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Wind"\ + "8 m/s" + } + } + } + } + } + } + } + VerticalLayoutWidgetClass "{60CACB2315EED092}" { + Prefab "{60CACB2315EED092}" + { + GridLayoutWidgetClass "{60CACB2315EED09C}" { + Prefab "{60CACB2315EED09C}" + { + HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { + Prefab "{60CACB2315EED09A}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MILs" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED084}" { + Prefab "{60CACB2315EED084}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MILs" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED087}" { + Prefab "{60CACB2315EED087}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MILs" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED081}" { + Prefab "{60CACB2315EED081}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MILs" + } + } + } + } + } + } + } + VerticalLayoutWidgetClass "{613A662D9616B408}" { + Prefab "{613A662D9616B408}" + { + GridLayoutWidgetClass "{613A662D9616B40A}" { + Prefab "{613A662D9616B40A}" + { + HorizontalLayoutWidgetClass "{613A662D9616B434}" { + Prefab "{613A662D9616B434}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "ZERO" + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout.meta b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout.meta new file mode 100644 index 000000000..aa53663be --- /dev/null +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout" + Configurations { + LayoutResourceClass PC { + } + LayoutResourceClass XBOX_ONE : PC { + } + LayoutResourceClass XBOX_SERIES : PC { + } + LayoutResourceClass PS4 : PC { + } + LayoutResourceClass PS5 : PC { + } + LayoutResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file From b52923a6b1ab5a8c8b4f67e36ce0164fd7c5addf Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 21:15:13 +0100 Subject: [PATCH 10/62] Add ballistic table prefabs --- .../BallisticTable/ACE_BallisticTable_Base.et | 11 ++++++++++ .../ACE_BallisticTable_Base.et.meta | 17 +++++++++++++++ .../BallisticTable/ACE_BallisticTable_US.et | 21 +++++++++++++++++++ .../ACE_BallisticTable_US.et.meta | 17 +++++++++++++++ .../BallisticTable/ACE_BallisticTable_USSR.et | 3 +++ .../ACE_BallisticTable_USSR.et.meta | 17 +++++++++++++++ 6 files changed, 86 insertions(+) create mode 100644 addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et create mode 100644 addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et.meta create mode 100644 addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et create mode 100644 addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et.meta create mode 100644 addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et create mode 100644 addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et.meta diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et new file mode 100644 index 000000000..6569d26e7 --- /dev/null +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et @@ -0,0 +1,11 @@ +GameEntity : "{35D7F1189BE00E94}Prefabs/Items/Equipment/BallisticTable/BallisticTable_base.et" { + ID "508AB2013EEE1E00" + components { + ACE_BallisticTableComponent "{60CAB3ECC903C006}" { + m_sLayoutName "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout" + m_eUnitType MILS_WP + m_eAnimVariable MAP + } + } + coords 128.463 1 127.348 +} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et.meta b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et.meta new file mode 100644 index 000000000..89aac8564 --- /dev/null +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et new file mode 100644 index 000000000..7d74628cc --- /dev/null +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et @@ -0,0 +1,21 @@ +GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et" { + ID "508AB2013EEE1E00" + components { + ACE_BallisticTableComponent "{60CAB3ECC903C006}" { + m_sLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout" + m_eUnitType MILLIRADIANS + } + MeshObject "{60CA7A7326F832F8}" { + Materials { + MaterialAssignClass "{68F60CD71F644B3F}" { + SourceMaterial "RangeTable_01" + AssignedMaterial "{798B20DC6F50AD7F}Assets/Items/Misc/BallisticTable/Data/RangeTable_01_M252.emat" + } + MaterialAssignClass "{68F60CD71F644B18}" { + SourceMaterial "RangeTable_01_2B14_MLOD" + AssignedMaterial "{F1AD919094330676}Assets/Items/Misc/BallisticTable/Data/RangeTable_01_M252_MLOD.emat" + } + } + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et.meta b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et.meta new file mode 100644 index 000000000..c503d4690 --- /dev/null +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et new file mode 100644 index 000000000..6f81d67a4 --- /dev/null +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et @@ -0,0 +1,3 @@ +GameEntity : "{889DC9D8BF3E3DD5}scripts/Game/ACE_Ballistics/ACE_BallisticTable_Base.et" { + ID "508AB2013EEE1E00" +} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et.meta b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et.meta new file mode 100644 index 000000000..8c334be7c --- /dev/null +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{4EE236EE814D3584}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et" + Configurations { + EntityTemplateResourceClass PC { + } + EntityTemplateResourceClass XBOX_ONE : PC { + } + EntityTemplateResourceClass XBOX_SERIES : PC { + } + EntityTemplateResourceClass PS4 : PC { + } + EntityTemplateResourceClass PS5 : PC { + } + EntityTemplateResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file From 53ff968d7b323dd6b44a11d1b98dfb8c22306077 Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 27 Mar 2026 21:15:41 +0100 Subject: [PATCH 11/62] Add ballistic tables to arsenals --- .../US/InventoryItems_EntityCatalog_US.conf | 17 +++++++++++++++++ .../InventoryItems_EntityCatalog_US.conf.meta | 17 +++++++++++++++++ .../USSR/InventoryItems_EntityCatalog_USSR.conf | 17 +++++++++++++++++ .../InventoryItems_EntityCatalog_USSR.conf.meta | 17 +++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf create mode 100644 addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta create mode 100644 addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf create mode 100644 addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta diff --git a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf new file mode 100644 index 000000000..5f6ced13b --- /dev/null +++ b/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf @@ -0,0 +1,17 @@ +SCR_EntityCatalogMultiList { + m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{68F60CE8757407E8}" { + m_sEntityPrefab "{03C6EB1EBD25AA33}scripts/Game/ACE_Ballistics/ACE_BallisticTable_US.et" + m_aEntityDataList { + SCR_ArsenalItem "{68F60CE875732DB6}" { + m_eItemType SNIPER_RIFLE + m_iSupplyCost 0 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta b/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta new file mode 100644 index 000000000..185e41b20 --- /dev/null +++ b/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf new file mode 100644 index 000000000..df25c460f --- /dev/null +++ b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf @@ -0,0 +1,17 @@ +SCR_EntityCatalogMultiList { + m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{68F60CE9B49FF3B1}" { + m_sEntityPrefab "{4EE236EE814D3584}scripts/Game/ACE_Ballistics/ACE_BallisticTable_USSR.et" + m_aEntityDataList { + SCR_ArsenalItem "{68F60CE9B49FF3C9}" { + m_eItemType SNIPER_RIFLE + m_iSupplyCost 0 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta new file mode 100644 index 000000000..44514319b --- /dev/null +++ b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file From 60e1eadf1aa40168912257dcc7527aefd396f0b6 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:12:45 +0100 Subject: [PATCH 12/62] Add localizations --- .../ACE_Ballistics_localization.cs_cz.conf | 14 +++++ ...CE_Ballistics_localization.cs_cz.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.de_de.conf | 14 +++++ ...CE_Ballistics_localization.de_de.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.en_us.conf | 14 +++++ ...CE_Ballistics_localization.en_us.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.es_es.conf | 14 +++++ ...CE_Ballistics_localization.es_es.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.fr_fr.conf | 14 +++++ ...CE_Ballistics_localization.fr_fr.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.it_it.conf | 14 +++++ ...CE_Ballistics_localization.it_it.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.ja_jp.conf | 14 +++++ ...CE_Ballistics_localization.ja_jp.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.ko_kr.conf | 14 +++++ ...CE_Ballistics_localization.ko_kr.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.pl_pl.conf | 14 +++++ ...CE_Ballistics_localization.pl_pl.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.pt_br.conf | 14 +++++ ...CE_Ballistics_localization.pt_br.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.ru_ru.conf | 14 +++++ ...CE_Ballistics_localization.ru_ru.conf.meta | 17 ++++++ .../Language/ACE_Ballistics_localization.st | 33 ++++++++++ .../ACE_Ballistics_localization.st.meta | 17 ++++++ .../ACE_Ballistics_localization.uk_ua.conf | 14 +++++ ...CE_Ballistics_localization.uk_ua.conf.meta | 17 ++++++ .../ACE_Ballistics_localization.zh_cn.conf | 14 +++++ ...CE_Ballistics_localization.zh_cn.conf.meta | 17 ++++++ .../BallisticTable/ACE_BallisticTable_US.et | 8 +++ .../BallisticTable/ACE_BallisticTable_USSR.et | 12 +++- addons/ballistics/addon.gproj | 61 +++++++++++++++++++ 31 files changed, 533 insertions(+), 1 deletion(-) create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.st create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.st.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf.meta create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf create mode 100644 addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf.meta diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf b/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf.meta new file mode 100644 index 000000000..1488e1d3e --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{3D9C3869C6CB0F04}Language/ACE_Ballistics_localization.cs_cz.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf b/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf.meta new file mode 100644 index 000000000..75168a5ee --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{E8E2225AD5681E24}Language/ACE_Ballistics_localization.de_de.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf b/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf.meta new file mode 100644 index 000000000..7ef1f6717 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{B612A811BF9B1B25}Language/ACE_Ballistics_localization.en_us.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf b/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf.meta new file mode 100644 index 000000000..66bd61232 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{735EE5985199703A}Language/ACE_Ballistics_localization.es_es.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf b/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf.meta new file mode 100644 index 000000000..ff399c3ee --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{C8F610AFB71A9338}Language/ACE_Ballistics_localization.fr_fr.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf b/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf.meta new file mode 100644 index 000000000..5d58dfa18 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{48EA9F9B1A3810C1}Language/ACE_Ballistics_localization.it_it.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf b/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf.meta new file mode 100644 index 000000000..4f721c3c7 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{58F122092449206A}Language/ACE_Ballistics_localization.ja_jp.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf.meta new file mode 100644 index 000000000..71db23b11 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{F84F0AA5B7642355}Language/ACE_Ballistics_localization.ko_kr.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf b/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf.meta new file mode 100644 index 000000000..d090a9781 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{A43EAC5F098BBF29}Language/ACE_Ballistics_localization.pl_pl.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf b/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf.meta new file mode 100644 index 000000000..34f368bc2 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{7149369332757593}Language/ACE_Ballistics_localization.pt_br.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf b/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf.meta new file mode 100644 index 000000000..9ec1278ca --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{2408223BAF0C10E5}Language/ACE_Ballistics_localization.ru_ru.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.st b/addons/ballistics/Language/ACE_Ballistics_localization.st new file mode 100644 index 000000000..4902b3881 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.st @@ -0,0 +1,33 @@ +StringTable { + ItemClassName "CustomStringTableItem" + Items { + CustomStringTableItem "{68F762272F79489D}" { + Id "ACE_Ballistics-Item_BallisticTables_US_Description" + Target_en_us "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + Modified 1761045239 + Author "Kexanone" + LastChanged "Kexanone" + } + CustomStringTableItem "{68F7622720A91AF2}" { + Id "ACE_Ballistics-Item_BallisticTables_US_Name" + Target_en_us "US Ballistic Tables" + Modified 1761044909 + Author "Kexanone" + LastChanged "Kexanone" + } + CustomStringTableItem "{68F76227713095DD}" { + Id "ACE_Ballistics-Item_BallisticTables_USSR_Description" + Target_en_us "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + Modified 1761045228 + Author "Kexanone" + LastChanged "Kexanone" + } + CustomStringTableItem "{68F7622774AC7852}" { + Id "ACE_Ballistics-Item_BallisticTables_USSR_Name" + Target_en_us "USSR Ballistic Tables" + Modified 1761044912 + Author "Kexanone" + LastChanged "Kexanone" + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.st.meta b/addons/ballistics/Language/ACE_Ballistics_localization.st.meta new file mode 100644 index 000000000..85b4ce97c --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.st.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{DA71C3C62240FAC9}Language/ACE_Ballistics_localization.st" + Configurations { + StringTableResourceClass PC { + } + StringTableResourceClass XBOX_ONE : PC { + } + StringTableResourceClass XBOX_SERIES : PC { + } + StringTableResourceClass PS4 : PC { + } + StringTableResourceClass PS5 : PC { + } + StringTableResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf b/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf.meta new file mode 100644 index 000000000..0f26c5604 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{AE5077CDC322AEB0}Language/ACE_Ballistics_localization.uk_ua.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf new file mode 100644 index 000000000..73009e5a4 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf @@ -0,0 +1,14 @@ +StringTableRuntime { + Ids { + "ACE_Ballistics-Item_BallisticTables_US_Description" + "ACE_Ballistics-Item_BallisticTables_US_Name" + "ACE_Ballistics-Item_BallisticTables_USSR_Description" + "ACE_Ballistics-Item_BallisticTables_USSR_Name" + } + Texts { + "Collection of ballistic tables in milliradians for bullets compatible with your rifle." + "US Ballistic Tables" + "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." + "USSR Ballistic Tables" + } +} \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf.meta b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf.meta new file mode 100644 index 000000000..c3c1efbf1 --- /dev/null +++ b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{74E019F0FA827EAD}Language/ACE_Ballistics_localization.zh_cn.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et index 7d74628cc..80811988d 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et @@ -5,6 +5,14 @@ GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_Balli m_sLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout" m_eUnitType MILLIRADIANS } + InventoryItemComponent "{5222EB4D0C73006B}" { + Attributes SCR_ItemAttributeCollection "{5222EB4D0A2B466B}" { + ItemDisplayName UIInfo "{5222EB4D07D865FA}" { + Name "#ACE_Ballistics-Item_BallisticTables_US_Name" + Description "#ACE_Ballistics-Item_BallisticTables_US_Description" + } + } + } MeshObject "{60CA7A7326F832F8}" { Materials { MaterialAssignClass "{68F60CD71F644B3F}" { diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et index 6f81d67a4..54f0c2bd2 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et @@ -1,3 +1,13 @@ -GameEntity : "{889DC9D8BF3E3DD5}scripts/Game/ACE_Ballistics/ACE_BallisticTable_Base.et" { +GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et" { ID "508AB2013EEE1E00" + components { + InventoryItemComponent "{5222EB4D0C73006B}" { + Attributes SCR_ItemAttributeCollection "{5222EB4D0A2B466B}" { + ItemDisplayName UIInfo "{5222EB4D07D865FA}" { + Name "#ACE_Ballistics-Item_BallisticTables_USSR_Name" + Description "#ACE_Ballistics-Item_BallisticTables_USSR_Description" + } + } + } + } } \ No newline at end of file diff --git a/addons/ballistics/addon.gproj b/addons/ballistics/addon.gproj index 2900a4dc2..2c1cb8fd8 100644 --- a/addons/ballistics/addon.gproj +++ b/addons/ballistics/addon.gproj @@ -7,6 +7,67 @@ GameProject { } Configurations { GameProjectConfig PC { + WidgetManagerSettings WidgetManagerSettings "{AC4BE58770485E02}" { + StringTables { + StringTableDefinition "{68F76221BDA994F4}" { + StringTableSource "{DA71C3C62240FAC9}Language/ACE_Ballistics_localization.st" + Languages { + LanguageDefinition "{68F76221B3A582B7}" { + Code "cs_cz" + StringTableRuntime "{3D9C3869C6CB0F04}Language/ACE_Ballistics_localization.cs_cz.conf" + } + LanguageDefinition "{68F76221B3A582F9}" { + Code "de_de" + StringTableRuntime "{E8E2225AD5681E24}Language/ACE_Ballistics_localization.de_de.conf" + } + LanguageDefinition "{68F76221B3A58279}" { + Code "en_us" + StringTableRuntime "{B612A811BF9B1B25}Language/ACE_Ballistics_localization.en_us.conf" + } + LanguageDefinition "{68F76221B3A5826E}" { + Code "es_es" + StringTableRuntime "{735EE5985199703A}Language/ACE_Ballistics_localization.es_es.conf" + } + LanguageDefinition "{68F76221B3A58242}" { + Code "fr_fr" + StringTableRuntime "{C8F610AFB71A9338}Language/ACE_Ballistics_localization.fr_fr.conf" + } + LanguageDefinition "{68F76221B3A581BB}" { + Code "it_it" + StringTableRuntime "{48EA9F9B1A3810C1}Language/ACE_Ballistics_localization.it_it.conf" + } + LanguageDefinition "{68F76221B3A581AF}" { + Code "ja_jp" + StringTableRuntime "{58F122092449206A}Language/ACE_Ballistics_localization.ja_jp.conf" + } + LanguageDefinition "{68F76221B3A58198}" { + Code "ko_kr" + StringTableRuntime "{F84F0AA5B7642355}Language/ACE_Ballistics_localization.ko_kr.conf" + } + LanguageDefinition "{68F76221B3A5818C}" { + Code "pl_pl" + StringTableRuntime "{A43EAC5F098BBF29}Language/ACE_Ballistics_localization.pl_pl.conf" + } + LanguageDefinition "{68F76221B3A581FC}" { + Code "pt_br" + StringTableRuntime "{7149369332757593}Language/ACE_Ballistics_localization.pt_br.conf" + } + LanguageDefinition "{68F76221B3A581DB}" { + Code "ru_ru" + StringTableRuntime "{2408223BAF0C10E5}Language/ACE_Ballistics_localization.ru_ru.conf" + } + LanguageDefinition "{68F76221B3A58091}" { + Code "uk_ua" + StringTableRuntime "{AE5077CDC322AEB0}Language/ACE_Ballistics_localization.uk_ua.conf" + } + LanguageDefinition "{68F76221B3A58082}" { + Code "zh_cn" + StringTableRuntime "{74E019F0FA827EAD}Language/ACE_Ballistics_localization.zh_cn.conf" + } + } + } + } + } } GameProjectConfig XBOX_ONE { } From 017aea67cd90061aa60efc27adef2c53db499ba9 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:13:18 +0100 Subject: [PATCH 13/62] Spawn dummy projectile locally --- .../Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 21eabae37..b36987cd1 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -25,7 +25,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig return true; float initialSpeed = ACE_BulletTools.GetInitialSpeed(m_sProjectilePrefab); - IEntity dummy = GetGame().SpawnEntityPrefab(Resource.Load(m_sProjectilePrefab), GetGame().GetWorld()); + IEntity dummy = GetGame().SpawnEntityPrefabLocal(Resource.Load(m_sProjectilePrefab), GetGame().GetWorld()); ProjectileMoveComponent moveComponent = ProjectileMoveComponent.Cast(dummy.FindComponent(ProjectileMoveComponent)); array> ballisticValues = {}; From dc78629db75e3ee15fe016f955111f2fad5319b2 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:14:46 +0100 Subject: [PATCH 14/62] Disable change shell type page actions --- .../Equipment/BallisticTable/ACE_BallisticTable_Base.et | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et index 6569d26e7..406f13835 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et @@ -6,6 +6,14 @@ GameEntity : "{35D7F1189BE00E94}Prefabs/Items/Equipment/BallisticTable/Ballistic m_eUnitType MILS_WP m_eAnimVariable MAP } + ActionsManagerComponent "{508AB5952B584B2E}" { + additionalActions { + ACE_NoUserAction "{6304F6F3DBC43D4B}" { + } + ACE_NoUserAction "{6304F6F3DE4511D0}" { + } + } + } } coords 128.463 1 127.348 } \ No newline at end of file From 4decf338d6af94b313807e12316dd9004ab059fe Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:15:12 +0100 Subject: [PATCH 15/62] Make change page action local --- .../Equipment/BallisticTable/ACE_BallisticTable_Base.et | 4 ++++ .../ACE_Ballistics_ChangeBallisticPageAction.c | 9 +++++++++ 2 files changed, 13 insertions(+) create mode 100644 addons/ballistics/scripts/Game/ACE_Ballistics/UserActions/ACE_Ballistics_ChangeBallisticPageAction.c diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et index 406f13835..2a2c6b89e 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et @@ -8,6 +8,10 @@ GameEntity : "{35D7F1189BE00E94}Prefabs/Items/Equipment/BallisticTable/Ballistic } ActionsManagerComponent "{508AB5952B584B2E}" { additionalActions { + ACE_Ballistics_ChangePageAction "{60CE81CBD818F194}" { + } + ACE_Ballistics_ChangePageAction "{60CE81CBDFE69B53}" { + } ACE_NoUserAction "{6304F6F3DBC43D4B}" { } ACE_NoUserAction "{6304F6F3DE4511D0}" { diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/UserActions/ACE_Ballistics_ChangeBallisticPageAction.c b/addons/ballistics/scripts/Game/ACE_Ballistics/UserActions/ACE_Ballistics_ChangeBallisticPageAction.c new file mode 100644 index 000000000..5f14033ed --- /dev/null +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/UserActions/ACE_Ballistics_ChangeBallisticPageAction.c @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------------------------ +class ACE_Ballistics_ChangePageAction : SCR_ChangeBallisticPageAction +{ + //------------------------------------------------------------------------------------------------ + override bool HasLocalEffectOnlyScript() + { + return true; + } +} From d910849ffd31aafd4582955c0b84ff178f06b93a Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:39:06 +0100 Subject: [PATCH 16/62] Disable ammo icon --- .../Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index b36987cd1..8de003f9a 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -15,7 +15,6 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig m_iMaxRange = 1500; m_iElevationChangeDownRange = 50; m_fStandardDispersion = 100; - m_sAmmoTypeQuadName = "ammotype-fmj"; } //------------------------------------------------------------------------------------------------ From d9de05a770b47a83b0f8ec7ebbe8e46fd2ad4cb9 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:39:43 +0100 Subject: [PATCH 17/62] Disable broadcasting of ballistic table pages --- .../Gadgets/ACE_BallisticTableComponent.c | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c index e95f7f2c9..26a559401 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c @@ -52,7 +52,7 @@ class ACE_BallisticTableComponent : SCR_BallisticTableComponent //------------------------------------------------------------------------------------------------ protected override void ModeSwitch(EGadgetMode mode, IEntity charOwner) { - if (mode == EGadgetMode.IN_HAND) + if (mode == EGadgetMode.IN_HAND && charOwner == SCR_PlayerController.GetLocalControlledEntity()) { ACE_BallisticTableComponentClass data = ACE_BallisticTableComponentClass.Cast(GetComponentData(GetOwner())); if (data) @@ -64,4 +64,25 @@ class ACE_BallisticTableComponent : SCR_BallisticTableComponent super.ModeSwitch(mode, charOwner); } + + //------------------------------------------------------------------------------------------------ + //! Disable broadcasting of pages + [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)] + override void RpcDo_SyncPageChange(int selectedPage) + { + } + + //------------------------------------------------------------------------------------------------ + //! Disable broadcasting of pages + override bool RplSave(ScriptBitWriter writer) + { + return true; + } + + //------------------------------------------------------------------------------------------------ + //! Disable broadcasting of pages + override bool RplLoad(ScriptBitReader reader) + { + return true; + } } From 21f198127f074781e7ab1998231dab41650427ac Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:43:04 +0100 Subject: [PATCH 18/62] Add dev.gproj --- addons/ballistics/dev.gproj | 83 +++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 addons/ballistics/dev.gproj diff --git a/addons/ballistics/dev.gproj b/addons/ballistics/dev.gproj new file mode 100644 index 000000000..ddc612f0b --- /dev/null +++ b/addons/ballistics/dev.gproj @@ -0,0 +1,83 @@ +GameProject { + ID "ACE_Ballistics_Dev" + GUID "68F77A54920B80AF" + TITLE "ACE Ballistics Dev" + Dependencies { + "58D0FB3206B6F859" "65AD7D0D9941A380" + } + Configurations { + GameProjectConfig PC { + WidgetManagerSettings WidgetManagerSettings "{AC4BE58770485E02}" { + StringTables { + StringTableDefinition "{68F76221BDA994F4}" { + StringTableSource "{DA71C3C62240FAC9}Language/ACE_Ballistics_localization.st" + Languages { + LanguageDefinition "{68F76221B3A582B7}" { + Code "cs_cz" + StringTableRuntime "{3D9C3869C6CB0F04}Language/ACE_Ballistics_localization.cs_cz.conf" + } + LanguageDefinition "{68F76221B3A582F9}" { + Code "de_de" + StringTableRuntime "{E8E2225AD5681E24}Language/ACE_Ballistics_localization.de_de.conf" + } + LanguageDefinition "{68F76221B3A58279}" { + Code "en_us" + StringTableRuntime "{B612A811BF9B1B25}Language/ACE_Ballistics_localization.en_us.conf" + } + LanguageDefinition "{68F76221B3A5826E}" { + Code "es_es" + StringTableRuntime "{735EE5985199703A}Language/ACE_Ballistics_localization.es_es.conf" + } + LanguageDefinition "{68F76221B3A58242}" { + Code "fr_fr" + StringTableRuntime "{C8F610AFB71A9338}Language/ACE_Ballistics_localization.fr_fr.conf" + } + LanguageDefinition "{68F76221B3A581BB}" { + Code "it_it" + StringTableRuntime "{48EA9F9B1A3810C1}Language/ACE_Ballistics_localization.it_it.conf" + } + LanguageDefinition "{68F76221B3A581AF}" { + Code "ja_jp" + StringTableRuntime "{58F122092449206A}Language/ACE_Ballistics_localization.ja_jp.conf" + } + LanguageDefinition "{68F76221B3A58198}" { + Code "ko_kr" + StringTableRuntime "{F84F0AA5B7642355}Language/ACE_Ballistics_localization.ko_kr.conf" + } + LanguageDefinition "{68F76221B3A5818C}" { + Code "pl_pl" + StringTableRuntime "{A43EAC5F098BBF29}Language/ACE_Ballistics_localization.pl_pl.conf" + } + LanguageDefinition "{68F76221B3A581FC}" { + Code "pt_br" + StringTableRuntime "{7149369332757593}Language/ACE_Ballistics_localization.pt_br.conf" + } + LanguageDefinition "{68F76221B3A581DB}" { + Code "ru_ru" + StringTableRuntime "{2408223BAF0C10E5}Language/ACE_Ballistics_localization.ru_ru.conf" + } + LanguageDefinition "{68F76221B3A58091}" { + Code "uk_ua" + StringTableRuntime "{AE5077CDC322AEB0}Language/ACE_Ballistics_localization.uk_ua.conf" + } + LanguageDefinition "{68F76221B3A58082}" { + Code "zh_cn" + StringTableRuntime "{74E019F0FA827EAD}Language/ACE_Ballistics_localization.zh_cn.conf" + } + } + } + } + } + } + GameProjectConfig XBOX_ONE { + } + GameProjectConfig XBOX_SERIES { + } + GameProjectConfig PS4 { + } + GameProjectConfig PS5 { + } + GameProjectConfig HEADLESS { + } + } +} \ No newline at end of file From da27f3773b9581ac66ea62f55bee76c132141992 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 00:44:33 +0100 Subject: [PATCH 19/62] Add ballistics addon to AiO --- addons/all_in_one/addon.gproj | 2 +- addons/all_in_one/dev.gproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/all_in_one/addon.gproj b/addons/all_in_one/addon.gproj index b1f4cd728..1d8739b18 100755 --- a/addons/all_in_one/addon.gproj +++ b/addons/all_in_one/addon.gproj @@ -3,7 +3,7 @@ GameProject { GUID "60C4E0B49618CC62" TITLE "ACE All in One" Dependencies { - "58D0FB3206B6F859" "60C4CE4888FF4621" "60E573C9B04CC408" "5DBD560C5148E1DA" "5EB744C5F42E0800" "60C53A9372ED3964" "606C369BAC3F6CC3" "60C4C12DAE90727B" "65860252A17554C7" "60EAEA0389DB3CC2" "611CB1D409001EB0" "61B7763A8AEB53B7" "646D52AF8BB3FF15" "61226BB18D360BDD" "64475DC102F2BDA4" "62F802951CC8A37E" + "58D0FB3206B6F859" "60C4CE4888FF4621" "60E573C9B04CC408" "5DBD560C5148E1DA" "5EB744C5F42E0800" "60C53A9372ED3964" "606C369BAC3F6CC3" "60C4C12DAE90727B" "65860252A17554C7" "60EAEA0389DB3CC2" "611CB1D409001EB0" "61B7763A8AEB53B7" "646D52AF8BB3FF15" "61226BB18D360BDD" "64475DC102F2BDA4" "62F802951CC8A37E" "646E06BB853A7778" } Configurations { GameProjectConfig PC { diff --git a/addons/all_in_one/dev.gproj b/addons/all_in_one/dev.gproj index e661dd2f6..04c2907f4 100644 --- a/addons/all_in_one/dev.gproj +++ b/addons/all_in_one/dev.gproj @@ -3,7 +3,7 @@ GameProject { GUID "65AD7BE594439A52" TITLE "ACE All in One Dev" Dependencies { - "58D0FB3206B6F859" "65AD7D0D9941A380" "65AD7C139EB4C1A1" "65AD7C379CBD394D" "65AD7BCC9F6B3B4E" "65AD7CF69FAF1FDD" "65AD7D2E9866FA6E" "6586079789278413" "65B343F799FB521B" "65AD7CE59E8DB349" "65AD7D4099944EBD" "65AD7D1E9EEAFA53" "65AD7C249E4ECDFB" "65AD7CB89F219E38" "65AD7C75826B46C6" "65AD7CD09CAEC4E2" + "58D0FB3206B6F859" "65AD7D0D9941A380" "65AD7C139EB4C1A1" "65AD7C379CBD394D" "65AD7BCC9F6B3B4E" "65AD7CF69FAF1FDD" "65AD7D2E9866FA6E" "6586079789278413" "65B343F799FB521B" "65AD7CE59E8DB349" "65AD7D4099944EBD" "65AD7D1E9EEAFA53" "65AD7C249E4ECDFB" "65AD7CB89F219E38" "65AD7C75826B46C6" "65AD7CD09CAEC4E2" "68F77A54920B80AF" } Configurations { GameProjectConfig PC { From 1c6c879af50b46b843875a35463871167f89e002 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 01:06:49 +0100 Subject: [PATCH 20/62] Set defaul ZERO value on table --- .../BallisticTable/ACE_BallisticTable_USSR.layout | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout index 7a9779cfb..b71a4121e 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout @@ -136,6 +136,15 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti } } } + HorizontalLayoutWidgetClass "{613A662D9616B436}" { + Prefab "{613A662D9616B436}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "100 M" + } + } + } } } } @@ -151,4 +160,4 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti } } } -} \ No newline at end of file +} From 37c1767e102972c5a4d85aa9a9f48163db754374 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 28 Mar 2026 01:07:16 +0100 Subject: [PATCH 21/62] Hide ammo icon on table --- .../BallisticTable/ACE_BallisticTable_USSR.layout | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout index b71a4121e..169fac7c2 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout @@ -9,6 +9,15 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { Prefab "{60CACB3CF08B74DA}" { + HorizontalLayoutWidgetClass "{60CA7A7A3FA5D448}" { + Prefab "{60CA7A7A3FA5D448}" + { + ImageWidgetClass "{630471A2C42EBD87}" { + Prefab "{630471A2C42EBD87}" + "Is Visible" 0 + } + } + } HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { Prefab "{60CACB3CDBF6E604}" { From 4afc1bfdf5e706c2f7b6c72e0cf8700da14feffb Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 30 Mar 2026 03:33:59 +0200 Subject: [PATCH 22/62] Add unit type to ballistic data --- .../Gadgets/Configs/SCR_BallisticData.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c new file mode 100644 index 000000000..4381bcd90 --- /dev/null +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c @@ -0,0 +1,17 @@ +//------------------------------------------------------------------------------------------------ +modded class SCR_BallisticData : ScriptAndConfig +{ + protected SCR_EOpticsAngleUnits m_eACE_UnitType; + + //------------------------------------------------------------------------------------------------ + void ACE_SetUnitType(SCR_EOpticsAngleUnits unitType) + { + m_eACE_UnitType = unitType; + } + + //------------------------------------------------------------------------------------------------ + SCR_EOpticsAngleUnits ACE_GetUnitType() + { + return m_eACE_UnitType; + } +} From fdc954dbdbdf0bff6c575c82b0fa0f42de4bea24 Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 30 Mar 2026 03:39:36 +0200 Subject: [PATCH 23/62] Compute drop via BallisticTable.GetHeightFromProjectile with speed coef and default zeroing from rifle --- .../Gadgets/ACE_BallisticTableComponent.c | 18 ++- .../Configs/ACE_VisualisedBallisticConfig.c | 141 ++++++------------ 2 files changed, 60 insertions(+), 99 deletions(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c index 26a559401..85c130bcf 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c @@ -16,30 +16,40 @@ class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass array weapons = {}; player.GetWeaponManager().GetWeapons(weapons); array allBulletPrefab = {}; + array speedCoefs = {}; + array defaultZeroingRanges = {}; foreach (BaseWeaponComponent weapon : weapons) { if (weapon.GetWeaponType() == EWeaponType.WT_HANDGUN) continue; + float defaultZeroingRange = weapon.GetCurrentSightsZeroing(); array muzzles = {}; weapon.GetMuzzlesList(muzzles); foreach (BaseMuzzleComponent muzzle : muzzles) { + float speedCoef = muzzle.GetBulletInitSpeedCoef(); + foreach (ResourceName bulletPrefab : ACE_BulletTools.GetDefaultResourceNamesFromMuzzle(muzzle)) { - if (!allBulletPrefab.Contains(bulletPrefab)) - allBulletPrefab.Insert(bulletPrefab); + int idx = allBulletPrefab.Find(bulletPrefab); + if ((idx >= 0) && (speedCoefs[idx] == speedCoef) && (defaultZeroingRanges[idx] == defaultZeroingRange)) + continue; + + allBulletPrefab.Insert(bulletPrefab); + speedCoefs.Insert(speedCoef); + defaultZeroingRanges.Insert(defaultZeroingRange); } } } m_aBallisticPages.Reserve(allBulletPrefab.Count()); - foreach (ResourceName bulletPrefab : allBulletPrefab) + foreach (int i, ResourceName bulletPrefab : allBulletPrefab) { - ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, m_eUnitType); + ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, speedCoefs[i], defaultZeroingRanges[i], m_eUnitType); page.GenerateBallisticData(); m_aBallisticPages.Insert(page); } diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 8de003f9a..f1a74114b 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -1,20 +1,26 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig { + protected float m_fInitSpeedCoef; + protected float m_fDefaultZeroingRange; + protected static const ref array WIND_SPEEDS = {4, 6, 8}; - protected static const float MAX_DROP = -30.0; + protected static const float MIN_DROP = -30.0; //------------------------------------------------------------------------------------------------ - void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) + void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, float initSpeedCoef = 1.0, float defaultZeroingRange = 100.0, SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) { m_sProjectilePrefab = projectilePrefab; m_sDisplayedText = FilePath.StripExtension(FilePath.StripPath(projectilePrefab)); + float initialSpeed = initSpeedCoef * ACE_BulletTools.GetInitialSpeed(projectilePrefab); + m_sDisplayedText += string.Format(" (%1 m/s)", Math.Round(initialSpeed)); m_eUnitType = unitType; - m_fProjectileInitSpeedCoef = m_eUnitType; // Used as storage for comparison on SCR_BallisticData + m_fProjectileInitSpeedCoef = initSpeedCoef; m_iRangeStep = 50; m_iMinRange = 100; m_iMaxRange = 1500; m_iElevationChangeDownRange = 50; - m_fStandardDispersion = 100; + m_fDefaultZeroingRange = defaultZeroingRange; + m_fStandardDispersion = defaultZeroingRange; } //------------------------------------------------------------------------------------------------ @@ -23,55 +29,51 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig if (VerifyDataExistence(m_iBallisticDataId)) return true; - float initialSpeed = ACE_BulletTools.GetInitialSpeed(m_sProjectilePrefab); + float initialSpeed = m_fProjectileInitSpeedCoef * ACE_BulletTools.GetInitialSpeed(m_sProjectilePrefab); IEntity dummy = GetGame().SpawnEntityPrefabLocal(Resource.Load(m_sProjectilePrefab), GetGame().GetWorld()); ProjectileMoveComponent moveComponent = ProjectileMoveComponent.Cast(dummy.FindComponent(ProjectileMoveComponent)); array> ballisticValues = {}; - float drop = -0.1; - float zeroDrop; + float zeroDrop = 0.0; for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) { array row = {range}; row.Resize(2 + WIND_SPEEDS.Count()); - float firstDrop = 0.0; - bool firstDropSet = false; - + + float time; + float height = BallisticTable.GetHeightFromProjectile(range, time, dummy, m_fProjectileInitSpeedCoef); + float drop = -SCR_Math.ConvertFromRadians(Math.Atan2(height, range), m_eUnitType); + + if (drop < MIN_DROP) + break; + + row[1] = drop; + + if (range == m_fDefaultZeroingRange) + zeroDrop = drop; + foreach (int i, float windSpeed : WIND_SPEEDS) { - float windage; - - if (!ComputeDropAndWindage(moveComponent, range, initialSpeed, windSpeed, drop, windage)) - break; - - if (!firstDropSet) - { - if (drop < MAX_DROP) - { - // Replace invalid drops by zeroDrop to get them replaced by dash - firstDrop = zeroDrop; - break; - } - - firstDrop = drop; - firstDropSet = true; - } - + float xOffset = ComputeProjectileWindageOffset(moveComponent, initialSpeed, windSpeed, drop, time); + float windage = SCR_Math.ConvertFromRadians(Math.Atan2(xOffset, range), m_eUnitType); row[2 + i] = ACE_Math.Round(windage, 1); } - if (ballisticValues.IsEmpty()) - zeroDrop = firstDrop; - else - row[1] = ACE_Math.Round(firstDrop - zeroDrop, 1); - ballisticValues.Insert(row); } + // Shift drops by default zeroing drop + for (int i = 0; i < ballisticValues.Count(); ++i) + { + ballisticValues[i][1] = ACE_Math.Round(ballisticValues[i][1] - zeroDrop, 1); + } + SCR_EntityHelper.DeleteEntityAndChildren(dummy); SCR_BallisticData ballisticData = new SCR_BallisticData(ballisticValues, m_sProjectilePrefab, m_bDirectFireMode, m_iRangeStep, m_fProjectileInitSpeedCoef); + ballisticData.ACE_SetUnitType(m_eUnitType); + if (!SCR_BallisticData.s_aBallistics) SCR_BallisticData.s_aBallistics = {}; @@ -81,78 +83,27 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig } //------------------------------------------------------------------------------------------------ - //! Optimize drop with secant method to match targetRange - //! Return drop and windage in angle - protected bool ComputeDropAndWindage(ProjectileMoveComponent moveComponent, float targetRange, float initialSpeed, float windSpeed, inout float drop, out float windage) + override bool VerifyDataExistence(inout int id = -1) { - ACE_Ballistics_DropResidual fn = new ACE_Ballistics_DropResidual(moveComponent, targetRange, initialSpeed, windSpeed); - ACE_MathTools_RootResult solution = ACE_MathTools.Secant(fn, drop + 0.1, drop - 0.1, ftol: 0.1, xtol: 0.0); - drop = MilliradiansToUnit(solution.m_fRoot); - windage = MilliradiansToUnit(fn.GetWindageResult()); - return solution.m_bConverged; + if (!super.VerifyDataExistence(id)) + return false; + + SCR_BallisticData ballisticData = SCR_BallisticData.s_aBallistics[id]; + return (ballisticData.ACE_GetUnitType() == m_eUnitType); } //------------------------------------------------------------------------------------------------ - protected vector ComputeProjectileSimulationResult(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float drop) + protected float ComputeProjectileWindageOffset(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float drop, float time) { - return moveComponent.GetProjectileSimulationResult( + vector offset = moveComponent.GetProjectileSimulationResult( vector.Zero, // initPosition initialSpeed, // initSpeed - Math.RAD2DEG * 1e-3 * -drop, // initElevationAngle + -Math.RAD2DEG * SCR_Math.ConvertToRadians(drop, m_eUnitType), // initElevationAngle 0, // initAzimuth {windSpeed, 0, 0}, // windVelocity 0, // targetHeight - 10, // maxSimulationTime + time, // maxSimulationTime ); - } - - //------------------------------------------------------------------------------------------------ - protected float MilliradiansToUnit(float value) - { - if (m_eUnitType == SCR_EOpticsAngleUnits.MILLIRADIANS) - return value; - - return SCR_Math.ConvertFromRadians(1e-3 * value, m_eUnitType); - } -} - -//------------------------------------------------------------------------------------------------ -class ACE_Ballistics_DropResidual : ACE_MathTools_FunctionBase -{ - protected ProjectileMoveComponent m_MoveComponent; - protected float m_fTargetRange; - protected float m_fInitialSpeed; - protected vector m_vWindVelocity; - protected vector m_fOffset; - - //------------------------------------------------------------------------------------------------ - void ACE_Ballistics_DropResidual(ProjectileMoveComponent moveComponent, float targetRange, float initialSpeed, float windSpeed) - { - m_fTargetRange = targetRange; - m_MoveComponent = moveComponent; - m_fInitialSpeed = initialSpeed; - m_vWindVelocity = {windSpeed, 0, 0}; - } - - //------------------------------------------------------------------------------------------------ - //! Return residual between computed range for the drop x in mrad and the targetRange - override float Eval(float x) - { - m_fOffset = m_MoveComponent.GetProjectileSimulationResult( - vector.Zero, // initPosition - m_fInitialSpeed, // initSpeed - Math.RAD2DEG * 1e-3 * -x, // initElevationAngle - 0, // initAzimuth - m_vWindVelocity, // windVelocity - 0, // targetHeight - 10, // maxSimulationTime - ); - return m_fOffset[2] - m_fTargetRange; - } - - //------------------------------------------------------------------------------------------------ - float GetWindageResult() - { - return 1e3 * Math.Atan2(m_fOffset[0], m_fOffset[2]); + return offset[0]; } } From c57fb09edabcebb397187a62aed405d28d889ae4 Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 30 Mar 2026 03:47:02 +0200 Subject: [PATCH 24/62] Name table items by angle unit instead of faction --- .../US/InventoryItems_EntityCatalog_US.conf | 2 +- .../InventoryItems_EntityCatalog_USSR.conf | 2 +- .../ACE_Ballistics_localization.cs_cz.conf | 12 +++++----- .../ACE_Ballistics_localization.de_de.conf | 16 ++++++------- .../ACE_Ballistics_localization.en_us.conf | 12 +++++----- .../ACE_Ballistics_localization.es_es.conf | 12 +++++----- .../ACE_Ballistics_localization.fr_fr.conf | 12 +++++----- .../ACE_Ballistics_localization.it_it.conf | 12 +++++----- .../ACE_Ballistics_localization.ja_jp.conf | 12 +++++----- .../ACE_Ballistics_localization.ko_kr.conf | 12 +++++----- .../ACE_Ballistics_localization.pl_pl.conf | 12 +++++----- .../ACE_Ballistics_localization.pt_br.conf | 12 +++++----- .../ACE_Ballistics_localization.ru_ru.conf | 12 +++++----- .../Language/ACE_Ballistics_localization.st | 24 +++++++++++-------- .../ACE_Ballistics_localization.uk_ua.conf | 12 +++++----- .../ACE_Ballistics_localization.zh_cn.conf | 12 +++++----- .../BallisticTable/ACE_BallisticTable_Base.et | 3 ++- ...able_US.et => ACE_BallisticTable_Mrads.et} | 6 ++--- ....meta => ACE_BallisticTable_Mrads.et.meta} | 2 +- ...e_USSR.et => ACE_BallisticTable_WpMils.et} | 4 ++-- ...meta => ACE_BallisticTable_WpMils.et.meta} | 2 +- ...layout => ACE_BallisticTable_Mrads.layout} | 2 +- ...a => ACE_BallisticTable_Mrads.layout.meta} | 0 ...ayout => ACE_BallisticTable_WpMils.layout} | 4 +++- ... => ACE_BallisticTable_WpMils.layout.meta} | 0 25 files changed, 109 insertions(+), 102 deletions(-) rename addons/ballistics/Prefabs/Items/Equipment/BallisticTable/{ACE_BallisticTable_US.et => ACE_BallisticTable_Mrads.et} (84%) rename addons/ballistics/Prefabs/Items/Equipment/BallisticTable/{ACE_BallisticTable_US.et.meta => ACE_BallisticTable_Mrads.et.meta} (92%) rename addons/ballistics/Prefabs/Items/Equipment/BallisticTable/{ACE_BallisticTable_USSR.et => ACE_BallisticTable_WpMils.et} (70%) rename addons/ballistics/Prefabs/Items/Equipment/BallisticTable/{ACE_BallisticTable_USSR.et.meta => ACE_BallisticTable_WpMils.et.meta} (92%) rename addons/ballistics/UI/layouts/Gadgets/BallisticTable/{ACE_BallisticTable_US.layout => ACE_BallisticTable_Mrads.layout} (98%) rename addons/ballistics/UI/layouts/Gadgets/BallisticTable/{ACE_BallisticTable_US.layout.meta => ACE_BallisticTable_Mrads.layout.meta} (100%) rename addons/ballistics/UI/layouts/Gadgets/BallisticTable/{ACE_BallisticTable_USSR.layout => ACE_BallisticTable_WpMils.layout} (98%) rename addons/ballistics/UI/layouts/Gadgets/BallisticTable/{ACE_BallisticTable_USSR.layout.meta => ACE_BallisticTable_WpMils.layout.meta} (100%) diff --git a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf index 5f6ced13b..916f96cf9 100644 --- a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ b/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf @@ -3,7 +3,7 @@ SCR_EntityCatalogMultiList { SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { m_aEntities { SCR_EntityCatalogInventoryItem "{68F60CE8757407E8}" { - m_sEntityPrefab "{03C6EB1EBD25AA33}scripts/Game/ACE_Ballistics/ACE_BallisticTable_US.et" + m_sEntityPrefab "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et" m_aEntityDataList { SCR_ArsenalItem "{68F60CE875732DB6}" { m_eItemType SNIPER_RIFLE diff --git a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf index df25c460f..ab12c83c9 100644 --- a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf @@ -3,7 +3,7 @@ SCR_EntityCatalogMultiList { SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { m_aEntities { SCR_EntityCatalogInventoryItem "{68F60CE9B49FF3B1}" { - m_sEntityPrefab "{4EE236EE814D3584}scripts/Game/ACE_Ballistics/ACE_BallisticTable_USSR.et" + m_sEntityPrefab "{4EE236EE814D3584}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et" m_aEntityDataList { SCR_ArsenalItem "{68F60CE9B49FF3C9}" { m_eItemType SNIPER_RIFLE diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf b/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.cs_cz.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf b/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf index 73009e5a4..9c60a6e65 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.de_de.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { - "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" - "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Sammlung von Schusstafeln in Milliradians für Kugeln, die kompatibel sind mit deiner Waffe." + "Schusstafeln in mrads" + "Sammlung von Schusstafeln in Warschauer Pakt mils für Kugeln, die kompatibel sind mit deiner Waffe." + "Schusstafeln in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf b/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.en_us.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf b/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.es_es.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf b/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.fr_fr.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf b/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.it_it.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf b/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ja_jp.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf b/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.pl_pl.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf b/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.pt_br.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf b/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ru_ru.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.st b/addons/ballistics/Language/ACE_Ballistics_localization.st index 4902b3881..3af21eb7d 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.st +++ b/addons/ballistics/Language/ACE_Ballistics_localization.st @@ -2,30 +2,34 @@ StringTable { ItemClassName "CustomStringTableItem" Items { CustomStringTableItem "{68F762272F79489D}" { - Id "ACE_Ballistics-Item_BallisticTables_US_Description" + Id "ACE_Ballistics-Item_BallisticTables_Mrads_Description" Target_en_us "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - Modified 1761045239 + Target_de_de "Sammlung von Schusstafeln in Milliradians für Kugeln, die kompatibel sind mit deiner Waffe." + Modified 1761350348 Author "Kexanone" LastChanged "Kexanone" } CustomStringTableItem "{68F7622720A91AF2}" { - Id "ACE_Ballistics-Item_BallisticTables_US_Name" - Target_en_us "US Ballistic Tables" - Modified 1761044909 + Id "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + Target_en_us "Ballistic Tables in mrads" + Target_de_de "Schusstafeln in mrads" + Modified 1761350049 Author "Kexanone" LastChanged "Kexanone" } CustomStringTableItem "{68F76227713095DD}" { - Id "ACE_Ballistics-Item_BallisticTables_USSR_Description" + Id "ACE_Ballistics-Item_BallisticTables_WpMils_Description" Target_en_us "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - Modified 1761045228 + Target_de_de "Sammlung von Schusstafeln in Warschauer Pakt mils für Kugeln, die kompatibel sind mit deiner Waffe." + Modified 1761350262 Author "Kexanone" LastChanged "Kexanone" } CustomStringTableItem "{68F7622774AC7852}" { - Id "ACE_Ballistics-Item_BallisticTables_USSR_Name" - Target_en_us "USSR Ballistic Tables" - Modified 1761044912 + Id "ACE_Ballistics-Item_BallisticTables_WpMils_Name" + Target_en_us "Ballistic Tables in WP mils" + Target_de_de "Schusstafeln in WP mils" + Modified 1761350069 Author "Kexanone" LastChanged "Kexanone" } diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf b/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.uk_ua.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf index 73009e5a4..6c660ac43 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf @@ -1,14 +1,14 @@ StringTableRuntime { Ids { - "ACE_Ballistics-Item_BallisticTables_US_Description" - "ACE_Ballistics-Item_BallisticTables_US_Name" - "ACE_Ballistics-Item_BallisticTables_USSR_Description" - "ACE_Ballistics-Item_BallisticTables_USSR_Name" + "ACE_Ballistics-Item_BallisticTables_Mrads_Description" + "ACE_Ballistics-Item_BallisticTables_Mrads_Name" + "ACE_Ballistics-Item_BallisticTables_WpMils_Description" + "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "US Ballistic Tables" + "Ballistic Tables in mrads" "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "USSR Ballistic Tables" + "Ballistic Tables in WP mils" } } \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et index 2a2c6b89e..a4f0a532d 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et @@ -2,7 +2,8 @@ GameEntity : "{35D7F1189BE00E94}Prefabs/Items/Equipment/BallisticTable/Ballistic ID "508AB2013EEE1E00" components { ACE_BallisticTableComponent "{60CAB3ECC903C006}" { - m_sLayoutName "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout" + m_sLayoutName "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout" + m_bReplaceZerosWithDash 0 m_eUnitType MILS_WP m_eAnimVariable MAP } diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et similarity index 84% rename from addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et rename to addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et index 80811988d..f9527223c 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et @@ -2,14 +2,14 @@ GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_Balli ID "508AB2013EEE1E00" components { ACE_BallisticTableComponent "{60CAB3ECC903C006}" { - m_sLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout" + m_sLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout" m_eUnitType MILLIRADIANS } InventoryItemComponent "{5222EB4D0C73006B}" { Attributes SCR_ItemAttributeCollection "{5222EB4D0A2B466B}" { ItemDisplayName UIInfo "{5222EB4D07D865FA}" { - Name "#ACE_Ballistics-Item_BallisticTables_US_Name" - Description "#ACE_Ballistics-Item_BallisticTables_US_Description" + Name "#ACE_Ballistics-Item_BallisticTables_Mrads_Name" + Description "#ACE_Ballistics-Item_BallisticTables_Mrads_Description" } } } diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et.meta b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et.meta similarity index 92% rename from addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et.meta rename to addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et.meta index c503d4690..5cff758fd 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et.meta +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_US.et" + Name "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et" Configurations { EntityTemplateResourceClass PC { } diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et similarity index 70% rename from addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et rename to addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et index 54f0c2bd2..7dc78b28d 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et @@ -4,8 +4,8 @@ GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_Balli InventoryItemComponent "{5222EB4D0C73006B}" { Attributes SCR_ItemAttributeCollection "{5222EB4D0A2B466B}" { ItemDisplayName UIInfo "{5222EB4D07D865FA}" { - Name "#ACE_Ballistics-Item_BallisticTables_USSR_Name" - Description "#ACE_Ballistics-Item_BallisticTables_USSR_Description" + Name "#ACE_Ballistics-Item_BallisticTables_WpMils_Name" + Description "#ACE_Ballistics-Item_BallisticTables_WpMils_Description" } } } diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et.meta b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et.meta similarity index 92% rename from addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et.meta rename to addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et.meta index 8c334be7c..00de27829 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et.meta +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{4EE236EE814D3584}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_USSR.et" + Name "{4EE236EE814D3584}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et" Configurations { EntityTemplateResourceClass PC { } diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout similarity index 98% rename from addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout rename to addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout index 294e1a57a..1aac0a65a 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout @@ -1,4 +1,4 @@ -FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout" { +FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout" { { RTTextureWidgetClass "{60C8F51E9E680399}" { Prefab "{60C8F51E9E680399}" diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout.meta b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout.meta similarity index 100% rename from addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_US.layout.meta rename to addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout.meta diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout similarity index 98% rename from addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout rename to addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout index 169fac7c2..2231f9385 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout @@ -150,6 +150,8 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" + Slot LayoutSlot "{60CA7A7DFDCBF5E1}" { + } Text "100 M" } } @@ -169,4 +171,4 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti } } } -} +} \ No newline at end of file diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout.meta b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout.meta similarity index 100% rename from addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_USSR.layout.meta rename to addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout.meta From 99d07bbd9b8720a13490e494dd0243aa94d1a694 Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 30 Mar 2026 03:47:22 +0200 Subject: [PATCH 25/62] Add mrads table to USSR --- .../USSR/InventoryItems_EntityCatalog_USSR.conf | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf index ab12c83c9..21ba4002d 100644 --- a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf @@ -11,6 +11,15 @@ SCR_EntityCatalogMultiList { } } } + SCR_EntityCatalogInventoryItem "{68FC1033FC9003A7}" { + m_sEntityPrefab "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et" + m_aEntityDataList { + SCR_ArsenalItem "{68FC1033FC90C3DA}" { + m_eItemType SNIPER_RIFLE + m_iSupplyCost 0 + } + } + } } } } From 22fd664fe564178df4f98ed73429ff8485eea3ce Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 30 Mar 2026 16:52:00 +0200 Subject: [PATCH 26/62] Add docs page --- .../content/docs/components/ballistics.mdx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 docs/src/content/docs/components/ballistics.mdx diff --git a/docs/src/content/docs/components/ballistics.mdx b/docs/src/content/docs/components/ballistics.mdx new file mode 100644 index 000000000..e6d532102 --- /dev/null +++ b/docs/src/content/docs/components/ballistics.mdx @@ -0,0 +1,23 @@ +--- +title: Ballistics +--- + +Increases windage of bullets and adds ballistic table items. + +## Details + +### Ballistic Tables + +The ballistic table items automatically update themselves to contain data of all currently carried weapons. Ballistic table items come with different units: One with mrad and one with Warshaw Pact mils. + +For optimal usage, one should also carry a pocket weather meter, such as the [Kacestrel 4500](../weather) from **ACE Weather** and a rangefinder like [Vector 21](https://docs.rhsmods.org/rhs-status-quo-user-documentation/arma-reforger/rhs-status-quo/blufor/gadgets/vector-21) and [PDU-4](https://docs.rhsmods.org/rhs-status-quo-user-documentation/arma-reforger/rhs-status-quo/redfor/gadgets/pdu-4) from **RHS Status Quo**. + +## Usage + +### Using a Ballistic Table + +1. Determine distance of target with a rangefinder and crosswind speed with a pocket weather meter. +2. Put ballistic table in hand and select page for the correct bullet by inspecting it. +3. Move to the row of the target distance and read bullet drop and windage correction. Interpolate the values if the target range lies between two rows. +4. Apply the corrections by using the reticle markings or [adjust the scope](../scopes) if you have **ACE Scopes**. + For a bullet drop of e.g. -7.9 mrad, simply adjust the elevation of the scope to 7.9 mrad. From b18df1d55e57cc55f98349b3642664135350b7cc Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 30 Mar 2026 23:47:31 +0200 Subject: [PATCH 27/62] Add ballistics addon to AiO --- addons/all_in_one/addon.gproj | 4 ++-- addons/all_in_one/dev.gproj | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/all_in_one/addon.gproj b/addons/all_in_one/addon.gproj index 1d8739b18..7a7594dfd 100755 --- a/addons/all_in_one/addon.gproj +++ b/addons/all_in_one/addon.gproj @@ -3,7 +3,7 @@ GameProject { GUID "60C4E0B49618CC62" TITLE "ACE All in One" Dependencies { - "58D0FB3206B6F859" "60C4CE4888FF4621" "60E573C9B04CC408" "5DBD560C5148E1DA" "5EB744C5F42E0800" "60C53A9372ED3964" "606C369BAC3F6CC3" "60C4C12DAE90727B" "65860252A17554C7" "60EAEA0389DB3CC2" "611CB1D409001EB0" "61B7763A8AEB53B7" "646D52AF8BB3FF15" "61226BB18D360BDD" "64475DC102F2BDA4" "62F802951CC8A37E" "646E06BB853A7778" + "58D0FB3206B6F859" "60C4CE4888FF4621" "60E573C9B04CC408" "5DBD560C5148E1DA" "5EB744C5F42E0800" "60C53A9372ED3964" "606C369BAC3F6CC3" "60C4C12DAE90727B" "65860252A17554C7" "60EAEA0389DB3CC2" "611CB1D409001EB0" "61B7763A8AEB53B7" "646D52AF8BB3FF15" "61226BB18D360BDD" "64475DC102F2BDA4" "62F802951CC8A37E" "646E06BB853A7778" "646E06BB853A7778" } Configurations { GameProjectConfig PC { @@ -19,4 +19,4 @@ GameProject { GameProjectConfig HEADLESS { } } -} \ No newline at end of file +} diff --git a/addons/all_in_one/dev.gproj b/addons/all_in_one/dev.gproj index 04c2907f4..8d88d8844 100644 --- a/addons/all_in_one/dev.gproj +++ b/addons/all_in_one/dev.gproj @@ -3,7 +3,7 @@ GameProject { GUID "65AD7BE594439A52" TITLE "ACE All in One Dev" Dependencies { - "58D0FB3206B6F859" "65AD7D0D9941A380" "65AD7C139EB4C1A1" "65AD7C379CBD394D" "65AD7BCC9F6B3B4E" "65AD7CF69FAF1FDD" "65AD7D2E9866FA6E" "6586079789278413" "65B343F799FB521B" "65AD7CE59E8DB349" "65AD7D4099944EBD" "65AD7D1E9EEAFA53" "65AD7C249E4ECDFB" "65AD7CB89F219E38" "65AD7C75826B46C6" "65AD7CD09CAEC4E2" "68F77A54920B80AF" + "58D0FB3206B6F859" "65AD7D0D9941A380" "65AD7C139EB4C1A1" "65AD7C379CBD394D" "65AD7BCC9F6B3B4E" "65AD7CF69FAF1FDD" "65AD7D2E9866FA6E" "6586079789278413" "65B343F799FB521B" "65AD7CE59E8DB349" "65AD7D4099944EBD" "65AD7D1E9EEAFA53" "65AD7C249E4ECDFB" "65AD7CB89F219E38" "65AD7C75826B46C6" "65AD7CD09CAEC4E2" "68F77A54920B80AF" "68F77A54920B80AF" } Configurations { GameProjectConfig PC { @@ -19,4 +19,4 @@ GameProject { GameProjectConfig HEADLESS { } } -} \ No newline at end of file +} From 5982ea1a2f4ac07a54ad65c99cab5012a75fca02 Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 30 Mar 2026 23:51:50 +0200 Subject: [PATCH 28/62] Revert "Add ballistics addon to AiO" This reverts commit b18df1d55e57cc55f98349b3642664135350b7cc. --- addons/all_in_one/addon.gproj | 4 ++-- addons/all_in_one/dev.gproj | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/all_in_one/addon.gproj b/addons/all_in_one/addon.gproj index 7a7594dfd..1d8739b18 100755 --- a/addons/all_in_one/addon.gproj +++ b/addons/all_in_one/addon.gproj @@ -3,7 +3,7 @@ GameProject { GUID "60C4E0B49618CC62" TITLE "ACE All in One" Dependencies { - "58D0FB3206B6F859" "60C4CE4888FF4621" "60E573C9B04CC408" "5DBD560C5148E1DA" "5EB744C5F42E0800" "60C53A9372ED3964" "606C369BAC3F6CC3" "60C4C12DAE90727B" "65860252A17554C7" "60EAEA0389DB3CC2" "611CB1D409001EB0" "61B7763A8AEB53B7" "646D52AF8BB3FF15" "61226BB18D360BDD" "64475DC102F2BDA4" "62F802951CC8A37E" "646E06BB853A7778" "646E06BB853A7778" + "58D0FB3206B6F859" "60C4CE4888FF4621" "60E573C9B04CC408" "5DBD560C5148E1DA" "5EB744C5F42E0800" "60C53A9372ED3964" "606C369BAC3F6CC3" "60C4C12DAE90727B" "65860252A17554C7" "60EAEA0389DB3CC2" "611CB1D409001EB0" "61B7763A8AEB53B7" "646D52AF8BB3FF15" "61226BB18D360BDD" "64475DC102F2BDA4" "62F802951CC8A37E" "646E06BB853A7778" } Configurations { GameProjectConfig PC { @@ -19,4 +19,4 @@ GameProject { GameProjectConfig HEADLESS { } } -} +} \ No newline at end of file diff --git a/addons/all_in_one/dev.gproj b/addons/all_in_one/dev.gproj index 8d88d8844..04c2907f4 100644 --- a/addons/all_in_one/dev.gproj +++ b/addons/all_in_one/dev.gproj @@ -3,7 +3,7 @@ GameProject { GUID "65AD7BE594439A52" TITLE "ACE All in One Dev" Dependencies { - "58D0FB3206B6F859" "65AD7D0D9941A380" "65AD7C139EB4C1A1" "65AD7C379CBD394D" "65AD7BCC9F6B3B4E" "65AD7CF69FAF1FDD" "65AD7D2E9866FA6E" "6586079789278413" "65B343F799FB521B" "65AD7CE59E8DB349" "65AD7D4099944EBD" "65AD7D1E9EEAFA53" "65AD7C249E4ECDFB" "65AD7CB89F219E38" "65AD7C75826B46C6" "65AD7CD09CAEC4E2" "68F77A54920B80AF" "68F77A54920B80AF" + "58D0FB3206B6F859" "65AD7D0D9941A380" "65AD7C139EB4C1A1" "65AD7C379CBD394D" "65AD7BCC9F6B3B4E" "65AD7CF69FAF1FDD" "65AD7D2E9866FA6E" "6586079789278413" "65B343F799FB521B" "65AD7CE59E8DB349" "65AD7D4099944EBD" "65AD7D1E9EEAFA53" "65AD7C249E4ECDFB" "65AD7CB89F219E38" "65AD7C75826B46C6" "65AD7CD09CAEC4E2" "68F77A54920B80AF" } Configurations { GameProjectConfig PC { @@ -19,4 +19,4 @@ GameProject { GameProjectConfig HEADLESS { } } -} +} \ No newline at end of file From 991536b86e0f3be809b70c0e56e8b336f1c4db38 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 21:59:44 +0200 Subject: [PATCH 29/62] Remove bullet drag override --- .../Prefabs/Weapons/Core/Ammo_Bullet_Base.et | 8 -------- .../Weapons/Core/Ammo_Bullet_Base.et.meta | 17 ----------------- 2 files changed, 25 deletions(-) delete mode 100644 addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et delete mode 100644 addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta diff --git a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et deleted file mode 100644 index ac4e2ec7d..000000000 --- a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et +++ /dev/null @@ -1,8 +0,0 @@ -Projectile { - ID "DA5C6308000CDEF2" - components { - ShellMoveComponent "{851AA4A2AE0A5691}" { - SideAirDragScale 44 - } - } -} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta deleted file mode 100644 index 60c6c6bda..000000000 --- a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{67FED88E5085F63F}Prefabs/Weapons/Core/Ammo_Bullet_Base.et" - Configurations { - EntityTemplateResourceClass PC { - } - EntityTemplateResourceClass XBOX_ONE : PC { - } - EntityTemplateResourceClass XBOX_SERIES : PC { - } - EntityTemplateResourceClass PS4 : PC { - } - EntityTemplateResourceClass PS5 : PC { - } - EntityTemplateResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file From 275968dedd7095edc88205c6bd3cf5a9729ce1d7 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 22:03:31 +0200 Subject: [PATCH 30/62] Fix changes in method signatures --- .../States/ACE_LoadtimeEntityManagerStateSerializer.c | 4 ++-- .../Conditions/ACE_IsCharacterCarrierCondition.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c b/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c index 1698b5848..51e3bf238 100644 --- a/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c +++ b/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c @@ -13,7 +13,7 @@ class ACE_LoadtimeEntityManagerStateSerializer : ScriptedStateSerializer } //------------------------------------------------------------------------------------------------ - override ESerializeResult Serialize(notnull Managed instance, notnull BaseSerializationSaveContext context) + override ESerializeResult Serialize(notnull Managed instance, notnull SaveContext context) { ACE_LoadtimeEntityManager manager = ACE_LoadtimeEntityManager.GetInstance(); if (!manager) @@ -38,7 +38,7 @@ class ACE_LoadtimeEntityManagerStateSerializer : ScriptedStateSerializer } //------------------------------------------------------------------------------------------------ - override bool Deserialize(notnull Managed instance, notnull BaseSerializationLoadContext context) + override bool Deserialize(notnull Managed instance, notnull LoadContext context) { ACE_LoadtimeEntityManager manager = ACE_LoadtimeEntityManager.GetInstance(); if (!manager) diff --git a/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c b/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c index bfe7168ad..8bab8b6e5 100644 --- a/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c +++ b/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c @@ -4,7 +4,7 @@ class ACE_IsCharacterCarrierCondition : SCR_AvailableActionCondition { //------------------------------------------------------------------------------------------------ //! Returns true if the release action is available - override bool IsAvailable(SCR_AvailableActionsConditionData data) + override bool IsAvailable(notnull SCR_AvailableActionsConditionData data) { if (!data) return false; From 7981088e154cce9e683782baa21bef3786dfd065 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 22:32:23 +0200 Subject: [PATCH 31/62] Fix m_aBallisticPages member name changed to m_aPages --- .../Components/Gadgets/ACE_BallisticTableComponent.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c index 85c130bcf..3c5aac808 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c @@ -7,7 +7,7 @@ class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass //------------------------------------------------------------------------------------------------ void UpdateBallisticData() { - m_aBallisticPages.Clear(); + m_aPages.Clear(); SCR_ChimeraCharacter player = SCR_ChimeraCharacter.Cast(SCR_PlayerController.GetLocalControlledEntity()); if (!player) @@ -45,13 +45,13 @@ class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass } } - m_aBallisticPages.Reserve(allBulletPrefab.Count()); + m_aPages.Reserve(allBulletPrefab.Count()); foreach (int i, ResourceName bulletPrefab : allBulletPrefab) { ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, speedCoefs[i], defaultZeroingRanges[i], m_eUnitType); page.GenerateBallisticData(); - m_aBallisticPages.Insert(page); + m_aPages.Insert(page); } } } From 2eff9c56b5f60c3f5bcb495e40852b5961212534 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 22:33:37 +0200 Subject: [PATCH 32/62] Adjust to new signature of GetProjectileSimulationResult --- .../Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index f1a74114b..ee25a467e 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -102,7 +102,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig 0, // initAzimuth {windSpeed, 0, 0}, // windVelocity 0, // targetHeight - time, // maxSimulationTime + maxSimulationTime: time, // maxSimulationTime ); return offset[0]; } From 8e9d286e5047bcf50ef7b64b88a9bcc1094bf727 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 22:34:06 +0200 Subject: [PATCH 33/62] Assign new members in ACE_VisualisedBallisticConfig --- .../Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index ee25a467e..686d1174a 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -21,6 +21,12 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig m_iElevationChangeDownRange = 50; m_fDefaultZeroingRange = defaultZeroingRange; m_fStandardDispersion = defaultZeroingRange; + + m_sLayoutName = "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout"; + m_sRowPrefab = "{F75FE2331AF70BF8}UI/layouts/Gadgets/BallisticTable/ContentRowLayout.layout"; + m_sCellPrefab = "{801F5CED215A1CFF}UI/layouts/Gadgets/BallisticTable/Content.layout"; + m_aGridFillWeights = {1, 1, 1, 1, 1}; + m_sAverageDispersionFormat = "%1 m"; } //------------------------------------------------------------------------------------------------ From cb0637e7f2040b11b3de83f85ff0d5f2a4a89122 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 22:34:39 +0200 Subject: [PATCH 34/62] Update prefab and layouts --- .../BallisticTable/ACE_BallisticTable_Base.et | 2 - .../ACE_BallisticTable_Mrads.et | 1 - .../ACE_BallisticTable_Mrads.layout | 94 +++--- .../ACE_BallisticTable_WpMils.layout | 282 +++++++++--------- 4 files changed, 186 insertions(+), 193 deletions(-) diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et index a4f0a532d..7b21a7070 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et @@ -2,8 +2,6 @@ GameEntity : "{35D7F1189BE00E94}Prefabs/Items/Equipment/BallisticTable/Ballistic ID "508AB2013EEE1E00" components { ACE_BallisticTableComponent "{60CAB3ECC903C006}" { - m_sLayoutName "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout" - m_bReplaceZerosWithDash 0 m_eUnitType MILS_WP m_eAnimVariable MAP } diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et index f9527223c..b94409d11 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et @@ -2,7 +2,6 @@ GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_Balli ID "508AB2013EEE1E00" components { ACE_BallisticTableComponent "{60CAB3ECC903C006}" { - m_sLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout" m_eUnitType MILLIRADIANS } InventoryItemComponent "{5222EB4D0C73006B}" { diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout index 1aac0a65a..6dc2abc2f 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout @@ -1,63 +1,53 @@ FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout" { { - RTTextureWidgetClass "{60C8F51E9E680399}" { - Prefab "{60C8F51E9E680399}" + VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { + Prefab "{60CACB3CF08B74DA}" { - FrameWidgetClass "{60C8F51EA4C53599}" { - Prefab "{60C8F51EA4C53599}" + HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { + Prefab "{60CACB3CDBF6E604}" { - VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { - Prefab "{60CACB3CF08B74DA}" + VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { + Prefab "{60CA76C7FD2D43DD}" { - HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { - Prefab "{60CACB3CDBF6E604}" + VerticalLayoutWidgetClass "{60CACB2315EED092}" { + Prefab "{60CACB2315EED092}" { - VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { - Prefab "{60CA76C7FD2D43DD}" + GridLayoutWidgetClass "{60CACB2315EED09C}" { + Prefab "{60CACB2315EED09C}" { - VerticalLayoutWidgetClass "{60CACB2315EED092}" { - Prefab "{60CACB2315EED092}" + HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { + Prefab "{60CACB2315EED09A}" { - GridLayoutWidgetClass "{60CACB2315EED09C}" { - Prefab "{60CACB2315EED09C}" - { - HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { - Prefab "{60CACB2315EED09A}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED084}" { - Prefab "{60CACB2315EED084}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED087}" { - Prefab "{60CACB2315EED087}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED081}" { - Prefab "{60CACB2315EED081}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRAD" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED084}" { + Prefab "{60CACB2315EED084}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRAD" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED087}" { + Prefab "{60CACB2315EED087}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRAD" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED081}" { + Prefab "{60CACB2315EED081}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRAD" } } } diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout index 2231f9385..b7d3e90b2 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout @@ -1,162 +1,168 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/BallisticTable.layout" { { - RTTextureWidgetClass "{60C8F51E9E680399}" { - Prefab "{60C8F51E9E680399}" + VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { + Prefab "{60CACB3CF08B74DA}" { - FrameWidgetClass "{60C8F51EA4C53599}" { - Prefab "{60C8F51EA4C53599}" + HorizontalLayoutWidgetClass "{60CA7A7A3FA5D448}" { + Prefab "{60CA7A7A3FA5D448}" { - VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { - Prefab "{60CACB3CF08B74DA}" + ImageWidgetClass "{630471A2C42EBD87}" { + Prefab "{630471A2C42EBD87}" + "Is Visible" 0 + } + } + } + HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { + Prefab "{60CACB3CDBF6E604}" + { + VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { + Prefab "{60CA76C7FD2D43DD}" { - HorizontalLayoutWidgetClass "{60CA7A7A3FA5D448}" { - Prefab "{60CA7A7A3FA5D448}" + VerticalLayoutWidgetClass "{60CACB206FBC43A0}" { + Prefab "{60CACB206FBC43A0}" { - ImageWidgetClass "{630471A2C42EBD87}" { - Prefab "{630471A2C42EBD87}" - "Is Visible" 0 + GridLayoutWidgetClass "{60CACB2005A3A282}" { + Prefab "{60CACB2005A3A282}" + ColumnFill { + 1 1 1 1 1 0 0 0 + } + { + HorizontalLayoutWidgetClass "{60CACB20278C4D64}" { + Prefab "{60CACB20278C4D64}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Target"\ + "Range" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2005A3A28B}" { + Prefab "{60CACB2005A3A28B}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Bullet"\ + "Drop" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2005A3A28E}" { + Prefab "{60CACB2005A3A28E}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Wind"\ + "4 m/s" + } + } + } + HorizontalLayoutWidgetClass "{60CACB21CD9DB8CA}" { + Prefab "{60CACB21CD9DB8CA}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Wind"\ + "6 m/s" + } + } + } + HorizontalLayoutWidgetClass "{60CACB21CD25DE44}" { + Prefab "{60CACB21CD25DE44}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Wind"\ + "8 m/s" + } + } + } + HorizontalLayoutWidgetClass "{689EB4E7B58AA73D}" { + Prefab "{689EB4E7B58AA73D}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{68A0BBD0BB5EF4A7}" { + Prefab "{68A0BBD0BB5EF4A7}" + "Is Visible" 0 + } + VerticalLayoutWidgetClass "{689EB4E47E5C3698}" { + Prefab "{689EB4E47E5C3698}" + "Is Visible" 0 + } + } } } } - HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { - Prefab "{60CACB3CDBF6E604}" + VerticalLayoutWidgetClass "{60CACB2315EED092}" { + Prefab "{60CACB2315EED092}" { - VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { - Prefab "{60CA76C7FD2D43DD}" + GridLayoutWidgetClass "{60CACB2315EED09C}" { + Prefab "{60CACB2315EED09C}" + ColumnFill { + 1 1 1 1 1 0 0 0 0 + } { - VerticalLayoutWidgetClass "{60CACB206FBC43A0}" { - Prefab "{60CACB206FBC43A0}" + HorizontalLayoutWidgetClass "{60CACB2315EED084}" { + Prefab "{60CACB2315EED084}" { - GridLayoutWidgetClass "{60CACB2005A3A282}" { - Prefab "{60CACB2005A3A282}" - { - HorizontalLayoutWidgetClass "{60CACB20278C4D64}" { - Prefab "{60CACB20278C4D64}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Target"\ - "Range" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2005A3A28B}" { - Prefab "{60CACB2005A3A28B}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Bullet"\ - "Drop" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2005A3A28E}" { - Prefab "{60CACB2005A3A28E}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "4 m/s" - } - } - } - HorizontalLayoutWidgetClass "{60CACB21CD9DB8CA}" { - Prefab "{60CACB21CD9DB8CA}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "6 m/s" - } - } - } - HorizontalLayoutWidgetClass "{60CACB21CD25DE44}" { - Prefab "{60CACB21CD25DE44}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "8 m/s" - } - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MIL" } } } - VerticalLayoutWidgetClass "{60CACB2315EED092}" { - Prefab "{60CACB2315EED092}" + HorizontalLayoutWidgetClass "{60CACB2315EED081}" { + Prefab "{60CACB2315EED081}" { - GridLayoutWidgetClass "{60CACB2315EED09C}" { - Prefab "{60CACB2315EED09C}" - { - HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { - Prefab "{60CACB2315EED09A}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED084}" { - Prefab "{60CACB2315EED084}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED087}" { - Prefab "{60CACB2315EED087}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED081}" { - Prefab "{60CACB2315EED081}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MIL" + } + } + } + HorizontalLayoutWidgetClass "{689EB4E6C52CA1A4}" { + Prefab "{689EB4E6C52CA1A4}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{689EB4E6DCB44754}" { + Prefab "{689EB4E6DCB44754}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{689EB4E6D4BB90BB}" { + Prefab "{689EB4E6D4BB90BB}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{689EB4E6D4BB90B9}" { + Prefab "{689EB4E6D4BB90B9}" + "Is Visible" 0 + } + } + } + } + } + VerticalLayoutWidgetClass "{613A662D9616B408}" { + Prefab "{613A662D9616B408}" + { + GridLayoutWidgetClass "{613A662D9616B40A}" { + Prefab "{613A662D9616B40A}" + { + HorizontalLayoutWidgetClass "{613A662D9616B434}" { + Prefab "{613A662D9616B434}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "ZERO" } } } - VerticalLayoutWidgetClass "{613A662D9616B408}" { - Prefab "{613A662D9616B408}" + HorizontalLayoutWidgetClass "{613A662D9616B436}" { + Prefab "{613A662D9616B436}" { - GridLayoutWidgetClass "{613A662D9616B40A}" { - Prefab "{613A662D9616B40A}" - { - HorizontalLayoutWidgetClass "{613A662D9616B434}" { - Prefab "{613A662D9616B434}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "ZERO" - } - } - } - HorizontalLayoutWidgetClass "{613A662D9616B436}" { - Prefab "{613A662D9616B436}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Slot LayoutSlot "{60CA7A7DFDCBF5E1}" { - } - Text "100 M" - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Slot LayoutSlot "{60CA7A7DFDCBF5E1}" { } + Text "100 M" } } } From 227e8d77cbc2090d726cd748712542d5dd26912d Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 22:38:36 +0200 Subject: [PATCH 35/62] Compute windage in mrads directly in helper method --- .../Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 686d1174a..308a2ad90 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -61,8 +61,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig foreach (int i, float windSpeed : WIND_SPEEDS) { - float xOffset = ComputeProjectileWindageOffset(moveComponent, initialSpeed, windSpeed, drop, time); - float windage = SCR_Math.ConvertFromRadians(Math.Atan2(xOffset, range), m_eUnitType); + float windage = ComputeProjectileWindage(moveComponent, initialSpeed, windSpeed, range, drop, time); row[2 + i] = ACE_Math.Round(windage, 1); } @@ -99,7 +98,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig } //------------------------------------------------------------------------------------------------ - protected float ComputeProjectileWindageOffset(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float drop, float time) + protected float ComputeProjectileWindage(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float range, float drop, float time) { vector offset = moveComponent.GetProjectileSimulationResult( vector.Zero, // initPosition @@ -110,6 +109,6 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig 0, // targetHeight maxSimulationTime: time, // maxSimulationTime ); - return offset[0]; + return SCR_Math.ConvertFromRadians(Math.Atan2(offset[0], range), m_eUnitType); } } From 2cf9c3aadcc8c6d3ea1b1865b3673370c36f9099 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 22:49:55 +0200 Subject: [PATCH 36/62] Refactor drop computation to separate method and compute zero drop directly --- .../Configs/ACE_VisualisedBallisticConfig.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 308a2ad90..ffe161ceb 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -40,24 +40,20 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig ProjectileMoveComponent moveComponent = ProjectileMoveComponent.Cast(dummy.FindComponent(ProjectileMoveComponent)); array> ballisticValues = {}; - float zeroDrop = 0.0; + float time; + float zeroDrop = ComputeProjectileDrop(moveComponent, m_fDefaultZeroingRange, time); for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) { array row = {range}; row.Resize(2 + WIND_SPEEDS.Count()); - float time; - float height = BallisticTable.GetHeightFromProjectile(range, time, dummy, m_fProjectileInitSpeedCoef); - float drop = -SCR_Math.ConvertFromRadians(Math.Atan2(height, range), m_eUnitType); + float drop = ComputeProjectileDrop(moveComponent, range, time); if (drop < MIN_DROP) break; row[1] = drop; - - if (range == m_fDefaultZeroingRange) - zeroDrop = drop; foreach (int i, float windSpeed : WIND_SPEEDS) { @@ -97,6 +93,12 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig return (ballisticData.ACE_GetUnitType() == m_eUnitType); } + protected float ComputeProjectileDrop(ProjectileMoveComponent moveComponent, float range, float time) + { + float height = BallisticTable.GetHeightFromProjectile(range, time, moveComponent.GetParentProjectile(), m_fProjectileInitSpeedCoef); + return -SCR_Math.ConvertFromRadians(Math.Atan2(height, range), m_eUnitType); + } + //------------------------------------------------------------------------------------------------ protected float ComputeProjectileWindage(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float range, float drop, float time) { From 0cfc5daf98d3ce984401f17b7ccf7a78a3d938b2 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 23:15:21 +0200 Subject: [PATCH 37/62] Compute only a single wind speed column --- .../ACE_BallisticTable_Mrads.layout | 4 ++-- .../ACE_BallisticTable_WpMils.layout | 17 ++++++++++++----- .../Configs/ACE_VisualisedBallisticConfig.c | 13 ++++--------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout index 6dc2abc2f..c284f384a 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout @@ -38,7 +38,7 @@ FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_Ball { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" - Text "MRAD" + Text "" } } } @@ -47,7 +47,7 @@ FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_Ball { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" - Text "MRAD" + Text "" } } } diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout index b7d3e90b2..6eb0d6f06 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout @@ -62,8 +62,7 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "6 m/s" + Text "" } } } @@ -72,8 +71,7 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "8 m/s" + Text "" } } } @@ -111,12 +109,21 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti } } } + HorizontalLayoutWidgetClass "{60CACB2315EED087}" { + Prefab "{60CACB2315EED087}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "" + } + } + } HorizontalLayoutWidgetClass "{60CACB2315EED081}" { Prefab "{60CACB2315EED081}" { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" - Text "MIL" + Text "" } } } diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index ffe161ceb..083f889e7 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -3,7 +3,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig protected float m_fInitSpeedCoef; protected float m_fDefaultZeroingRange; - protected static const ref array WIND_SPEEDS = {4, 6, 8}; + protected static const float WIND_SPEED = 4.0; protected static const float MIN_DROP = -30.0; //------------------------------------------------------------------------------------------------ @@ -46,7 +46,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) { array row = {range}; - row.Resize(2 + WIND_SPEEDS.Count()); + row.Resize(3); float drop = ComputeProjectileDrop(moveComponent, range, time); @@ -54,13 +54,8 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig break; row[1] = drop; - - foreach (int i, float windSpeed : WIND_SPEEDS) - { - float windage = ComputeProjectileWindage(moveComponent, initialSpeed, windSpeed, range, drop, time); - row[2 + i] = ACE_Math.Round(windage, 1); - } - + float windage = ComputeProjectileWindage(moveComponent, initialSpeed, WIND_SPEED, range, drop, time); + row[2] = ACE_Math.Round(windage, 1); ballisticValues.Insert(row); } From 43e66ee0e9659314869cb614841c2ccc6af18f89 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 23:17:08 +0200 Subject: [PATCH 38/62] Store default zeroing range --- .../Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 3 ++- .../Components/Gadgets/Configs/SCR_BallisticData.c | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index f1a74114b..1fd06def6 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -73,6 +73,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig SCR_BallisticData ballisticData = new SCR_BallisticData(ballisticValues, m_sProjectilePrefab, m_bDirectFireMode, m_iRangeStep, m_fProjectileInitSpeedCoef); ballisticData.ACE_SetUnitType(m_eUnitType); + ballisticData.ACE_SetDefaultZeroingRange(m_fDefaultZeroingRange); if (!SCR_BallisticData.s_aBallistics) SCR_BallisticData.s_aBallistics = {}; @@ -89,7 +90,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig return false; SCR_BallisticData ballisticData = SCR_BallisticData.s_aBallistics[id]; - return (ballisticData.ACE_GetUnitType() == m_eUnitType); + return (ballisticData.ACE_GetUnitType() == m_eUnitType) && (ballisticData.ACE_GetDefaultZeroingRange() == m_fDefaultZeroingRange); } //------------------------------------------------------------------------------------------------ diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c index 4381bcd90..87eff0769 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/SCR_BallisticData.c @@ -2,6 +2,7 @@ modded class SCR_BallisticData : ScriptAndConfig { protected SCR_EOpticsAngleUnits m_eACE_UnitType; + protected float m_eACE_DefaultZeroingRange; //------------------------------------------------------------------------------------------------ void ACE_SetUnitType(SCR_EOpticsAngleUnits unitType) @@ -14,4 +15,16 @@ modded class SCR_BallisticData : ScriptAndConfig { return m_eACE_UnitType; } + + //------------------------------------------------------------------------------------------------ + void ACE_SetDefaultZeroingRange(float range) + { + m_eACE_DefaultZeroingRange = range; + } + + //------------------------------------------------------------------------------------------------ + float ACE_GetDefaultZeroingRange() + { + return m_eACE_DefaultZeroingRange; + } } From eac7a9f61ce9a19bdad8d5586fcf569950dc1cb1 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 4 Apr 2026 23:41:32 +0200 Subject: [PATCH 39/62] Add table layout attribute to component and pass to config --- .../Equipment/BallisticTable/ACE_BallisticTable_Mrads.et | 1 + .../Components/Gadgets/ACE_BallisticTableComponent.c | 7 +++++-- .../Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et index b94409d11..d0d1a34e5 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et @@ -3,6 +3,7 @@ GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_Balli components { ACE_BallisticTableComponent "{60CAB3ECC903C006}" { m_eUnitType MILLIRADIANS + m_sACE_TableLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout" } InventoryItemComponent "{5222EB4D0C73006B}" { Attributes SCR_ItemAttributeCollection "{5222EB4D0A2B466B}" { diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c index 3c5aac808..225c5909f 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c @@ -1,9 +1,12 @@ //------------------------------------------------------------------------------------------------ class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass { - [Attribute(SCR_Enum.GetDefault(SCR_EOpticsAngleUnits.MILLIRADIANS), uiwidget: UIWidgets.ComboBox, enums: ParamEnumArray.FromEnum(SCR_EOpticsAngleUnits))] + [Attribute(SCR_Enum.GetDefault(SCR_EOpticsAngleUnits.MILLIRADIANS), uiwidget: UIWidgets.ComboBox, enums: ParamEnumArray.FromEnum(SCR_EOpticsAngleUnits), category: "Layouts")] protected SCR_EOpticsAngleUnits m_eUnitType; + [Attribute(defvalue: "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout", uiwidget: UIWidgets.ResourceNamePicker, category: "Layouts")] + protected ResourceName m_sACE_TableLayoutName; + //------------------------------------------------------------------------------------------------ void UpdateBallisticData() { @@ -49,7 +52,7 @@ class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass foreach (int i, ResourceName bulletPrefab : allBulletPrefab) { - ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, speedCoefs[i], defaultZeroingRanges[i], m_eUnitType); + ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, speedCoefs[i], defaultZeroingRanges[i], m_sACE_TableLayoutName, m_eUnitType); page.GenerateBallisticData(); m_aPages.Insert(page); } diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 749170b12..4a23ac7f3 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -7,7 +7,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig protected static const float MIN_DROP = -30.0; //------------------------------------------------------------------------------------------------ - void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, float initSpeedCoef = 1.0, float defaultZeroingRange = 100.0, SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) + void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, float initSpeedCoef = 1.0, float defaultZeroingRange = 100.0, ResourceName tableLayoutName = "", SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) { m_sProjectilePrefab = projectilePrefab; m_sDisplayedText = FilePath.StripExtension(FilePath.StripPath(projectilePrefab)); @@ -22,7 +22,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig m_fDefaultZeroingRange = defaultZeroingRange; m_fStandardDispersion = defaultZeroingRange; - m_sLayoutName = "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout"; + m_sLayoutName = tableLayoutName; m_sRowPrefab = "{F75FE2331AF70BF8}UI/layouts/Gadgets/BallisticTable/ContentRowLayout.layout"; m_sCellPrefab = "{801F5CED215A1CFF}UI/layouts/Gadgets/BallisticTable/Content.layout"; m_aGridFillWeights = {1, 1, 1, 1, 1}; From 6158b11dceac1e2f1d304728c7fbf762278b87b0 Mon Sep 17 00:00:00 2001 From: Psycool <104776717+Psycool3695@users.noreply.github.com> Date: Sun, 5 Apr 2026 07:17:06 +0900 Subject: [PATCH 40/62] Korean Translation - Ballistics (#391) --- .../Language/ACE_Ballistics_localization.ko_kr.conf | 8 ++++---- addons/ballistics/Language/ACE_Ballistics_localization.st | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf index 6c660ac43..52c6a58ef 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.ko_kr.conf @@ -6,9 +6,9 @@ StringTableRuntime { "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { - "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "Ballistic Tables in mrads" - "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "Ballistic Tables in WP mils" + "사용 중인 총에 맞는 탄환의 밀리라디안(Mil) 단위 탄도표입니다." + "탄도표 (Mil 단위)" + "사용 중인 총에 맞는 탄환의 바르샤바 조약기구 규격의 밀리라디안(WP Mil) 단위 탄도표입니다." + "탄도표 (WP Mil 단위)" } } \ No newline at end of file diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.st b/addons/ballistics/Language/ACE_Ballistics_localization.st index 3af21eb7d..ec1b84643 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.st +++ b/addons/ballistics/Language/ACE_Ballistics_localization.st @@ -5,6 +5,7 @@ StringTable { Id "ACE_Ballistics-Item_BallisticTables_Mrads_Description" Target_en_us "Collection of ballistic tables in milliradians for bullets compatible with your rifle." Target_de_de "Sammlung von Schusstafeln in Milliradians für Kugeln, die kompatibel sind mit deiner Waffe." + Target_ko_kr "사용 중인 총에 맞는 탄환의 밀리라디안(Mil) 단위 탄도표입니다." Modified 1761350348 Author "Kexanone" LastChanged "Kexanone" @@ -13,6 +14,7 @@ StringTable { Id "ACE_Ballistics-Item_BallisticTables_Mrads_Name" Target_en_us "Ballistic Tables in mrads" Target_de_de "Schusstafeln in mrads" + Target_ko_kr "탄도표 (Mil 단위)" Modified 1761350049 Author "Kexanone" LastChanged "Kexanone" @@ -21,6 +23,7 @@ StringTable { Id "ACE_Ballistics-Item_BallisticTables_WpMils_Description" Target_en_us "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." Target_de_de "Sammlung von Schusstafeln in Warschauer Pakt mils für Kugeln, die kompatibel sind mit deiner Waffe." + Target_ko_kr "사용 중인 총에 맞는 탄환의 바르샤바 조약기구 규격의 밀리라디안(WP Mil) 단위 탄도표입니다." Modified 1761350262 Author "Kexanone" LastChanged "Kexanone" @@ -29,6 +32,7 @@ StringTable { Id "ACE_Ballistics-Item_BallisticTables_WpMils_Name" Target_en_us "Ballistic Tables in WP mils" Target_de_de "Schusstafeln in WP mils" + Target_ko_kr "탄도표 (WP Mil 단위)" Modified 1761350069 Author "Kexanone" LastChanged "Kexanone" From d9666420385492f155dc78fd27694c1bde86fe35 Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 28 May 2026 02:00:04 +0200 Subject: [PATCH 41/62] Make time const --- .../Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 4a23ac7f3..22f8ffb8c 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -40,7 +40,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig ProjectileMoveComponent moveComponent = ProjectileMoveComponent.Cast(dummy.FindComponent(ProjectileMoveComponent)); array> ballisticValues = {}; - float time; + const float time; float zeroDrop = ComputeProjectileDrop(moveComponent, m_fDefaultZeroingRange, time); for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) From e129ac3cea5e16f029e49b2abe9fc70f1e9ef691 Mon Sep 17 00:00:00 2001 From: HuangYuanYu Date: Fri, 29 May 2026 00:03:22 +0800 Subject: [PATCH 42/62] Ballistics - Add chinese localization (#440) * Ballistics - Add chinese localization Ballistics - Add chinese localization * Update ACE_Ballistics_localization.zh_cn.conf --- .../Language/ACE_Ballistics_localization.st | 22 +++++++++++-------- .../ACE_Ballistics_localization.zh_cn.conf | 10 ++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.st b/addons/ballistics/Language/ACE_Ballistics_localization.st index ec1b84643..d42e00303 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.st +++ b/addons/ballistics/Language/ACE_Ballistics_localization.st @@ -6,36 +6,40 @@ StringTable { Target_en_us "Collection of ballistic tables in milliradians for bullets compatible with your rifle." Target_de_de "Sammlung von Schusstafeln in Milliradians für Kugeln, die kompatibel sind mit deiner Waffe." Target_ko_kr "사용 중인 총에 맞는 탄환의 밀리라디안(Mil) 단위 탄도표입니다." - Modified 1761350348 + Target_zh_cn "收集與您步槍相容子彈之密位 (mrad) 彈道數據表" + Modified 1769403357 Author "Kexanone" - LastChanged "Kexanone" + LastChanged "YuanYu" } CustomStringTableItem "{68F7622720A91AF2}" { Id "ACE_Ballistics-Item_BallisticTables_Mrads_Name" Target_en_us "Ballistic Tables in mrads" Target_de_de "Schusstafeln in mrads" Target_ko_kr "탄도표 (Mil 단위)" - Modified 1761350049 + Target_zh_cn "mrad 密位彈道表" + Modified 1769403386 Author "Kexanone" - LastChanged "Kexanone" + LastChanged "YuanYu" } CustomStringTableItem "{68F76227713095DD}" { Id "ACE_Ballistics-Item_BallisticTables_WpMils_Description" Target_en_us "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." Target_de_de "Sammlung von Schusstafeln in Warschauer Pakt mils für Kugeln, die kompatibel sind mit deiner Waffe." Target_ko_kr "사용 중인 총에 맞는 탄환의 바르샤바 조약기구 규격의 밀리라디안(WP Mil) 단위 탄도표입니다." - Modified 1761350262 + Target_zh_cn "收集與您步槍相容子彈之華沙公約密位彈道數據表" + Modified 1769403437 Author "Kexanone" - LastChanged "Kexanone" + LastChanged "YuanYu" } CustomStringTableItem "{68F7622774AC7852}" { Id "ACE_Ballistics-Item_BallisticTables_WpMils_Name" Target_en_us "Ballistic Tables in WP mils" Target_de_de "Schusstafeln in WP mils" Target_ko_kr "탄도표 (WP Mil 단위)" - Modified 1761350069 + Target_zh_cn "華約密位彈道表" + Modified 1769403497 Author "Kexanone" - LastChanged "Kexanone" + LastChanged "YuanYu" } } -} \ No newline at end of file +} diff --git a/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf index 6c660ac43..0eaca0231 100644 --- a/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf +++ b/addons/ballistics/Language/ACE_Ballistics_localization.zh_cn.conf @@ -6,9 +6,9 @@ StringTableRuntime { "ACE_Ballistics-Item_BallisticTables_WpMils_Name" } Texts { - "Collection of ballistic tables in milliradians for bullets compatible with your rifle." - "Ballistic Tables in mrads" - "Collection of ballistic tables in Warsaw Pact mils for bullets compatible with your rifle." - "Ballistic Tables in WP mils" + "收集與您步槍相容子彈之密位 (mrad) 彈道數據表" + "mrad 密位彈道表" + "收集與您步槍相容子彈之華沙公約密位彈道數據表" + "華約密位彈道表" } -} \ No newline at end of file +} From 58bae07cc95e4fc6b5ed83190040b159cb52fc13 Mon Sep 17 00:00:00 2001 From: Kex Date: Mon, 8 Jun 2026 23:22:00 +0200 Subject: [PATCH 43/62] Ballistics - Fixes for experimental (#401) * Remove bullet drag override * Fix changes in method signatures * Fix m_aBallisticPages member name changed to m_aPages * Adjust to new signature of GetProjectileSimulationResult * Assign new members in ACE_VisualisedBallisticConfig * Update prefab and layouts * Compute windage in mrads directly in helper method * Refactor drop computation to separate method and compute zero drop directly * Compute only a single wind speed column * Add table layout attribute to component and pass to config * Make time const --- .../BallisticTable/ACE_BallisticTable_Base.et | 2 - .../ACE_BallisticTable_Mrads.et | 2 +- .../Prefabs/Weapons/Core/Ammo_Bullet_Base.et | 8 - .../Weapons/Core/Ammo_Bullet_Base.et.meta | 17 -- .../ACE_BallisticTable_Mrads.layout | 94 +++--- .../ACE_BallisticTable_WpMils.layout | 289 +++++++++--------- .../Gadgets/ACE_BallisticTableComponent.c | 13 +- .../Configs/ACE_VisualisedBallisticConfig.c | 44 +-- ...ACE_LoadtimeEntityManagerStateSerializer.c | 4 +- .../ACE_IsCharacterCarrierCondition.c | 2 +- 10 files changed, 228 insertions(+), 247 deletions(-) delete mode 100644 addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et delete mode 100644 addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et index a4f0a532d..7b21a7070 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Base.et @@ -2,8 +2,6 @@ GameEntity : "{35D7F1189BE00E94}Prefabs/Items/Equipment/BallisticTable/Ballistic ID "508AB2013EEE1E00" components { ACE_BallisticTableComponent "{60CAB3ECC903C006}" { - m_sLayoutName "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout" - m_bReplaceZerosWithDash 0 m_eUnitType MILS_WP m_eAnimVariable MAP } diff --git a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et index f9527223c..d0d1a34e5 100644 --- a/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et +++ b/addons/ballistics/Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et @@ -2,8 +2,8 @@ GameEntity : "{889DC9D8BF3E3DD5}Prefabs/Items/Equipment/BallisticTable/ACE_Balli ID "508AB2013EEE1E00" components { ACE_BallisticTableComponent "{60CAB3ECC903C006}" { - m_sLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout" m_eUnitType MILLIRADIANS + m_sACE_TableLayoutName "{94BEF98329CC0B81}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout" } InventoryItemComponent "{5222EB4D0C73006B}" { Attributes SCR_ItemAttributeCollection "{5222EB4D0A2B466B}" { diff --git a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et deleted file mode 100644 index ac4e2ec7d..000000000 --- a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et +++ /dev/null @@ -1,8 +0,0 @@ -Projectile { - ID "DA5C6308000CDEF2" - components { - ShellMoveComponent "{851AA4A2AE0A5691}" { - SideAirDragScale 44 - } - } -} \ No newline at end of file diff --git a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta b/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta deleted file mode 100644 index 60c6c6bda..000000000 --- a/addons/ballistics/Prefabs/Weapons/Core/Ammo_Bullet_Base.et.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{67FED88E5085F63F}Prefabs/Weapons/Core/Ammo_Bullet_Base.et" - Configurations { - EntityTemplateResourceClass PC { - } - EntityTemplateResourceClass XBOX_ONE : PC { - } - EntityTemplateResourceClass XBOX_SERIES : PC { - } - EntityTemplateResourceClass PS4 : PC { - } - EntityTemplateResourceClass PS5 : PC { - } - EntityTemplateResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout index 1aac0a65a..c284f384a 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout @@ -1,63 +1,53 @@ FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout" { { - RTTextureWidgetClass "{60C8F51E9E680399}" { - Prefab "{60C8F51E9E680399}" + VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { + Prefab "{60CACB3CF08B74DA}" { - FrameWidgetClass "{60C8F51EA4C53599}" { - Prefab "{60C8F51EA4C53599}" + HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { + Prefab "{60CACB3CDBF6E604}" { - VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { - Prefab "{60CACB3CF08B74DA}" + VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { + Prefab "{60CA76C7FD2D43DD}" { - HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { - Prefab "{60CACB3CDBF6E604}" + VerticalLayoutWidgetClass "{60CACB2315EED092}" { + Prefab "{60CACB2315EED092}" { - VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { - Prefab "{60CA76C7FD2D43DD}" + GridLayoutWidgetClass "{60CACB2315EED09C}" { + Prefab "{60CACB2315EED09C}" { - VerticalLayoutWidgetClass "{60CACB2315EED092}" { - Prefab "{60CACB2315EED092}" + HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { + Prefab "{60CACB2315EED09A}" { - GridLayoutWidgetClass "{60CACB2315EED09C}" { - Prefab "{60CACB2315EED09C}" - { - HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { - Prefab "{60CACB2315EED09A}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED084}" { - Prefab "{60CACB2315EED084}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED087}" { - Prefab "{60CACB2315EED087}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED081}" { - Prefab "{60CACB2315EED081}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MRADs" - } - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRAD" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED084}" { + Prefab "{60CACB2315EED084}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MRAD" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED087}" { + Prefab "{60CACB2315EED087}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED081}" { + Prefab "{60CACB2315EED081}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "" } } } diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout index 2231f9385..6eb0d6f06 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout @@ -1,162 +1,175 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/BallisticTable.layout" { { - RTTextureWidgetClass "{60C8F51E9E680399}" { - Prefab "{60C8F51E9E680399}" + VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { + Prefab "{60CACB3CF08B74DA}" { - FrameWidgetClass "{60C8F51EA4C53599}" { - Prefab "{60C8F51EA4C53599}" + HorizontalLayoutWidgetClass "{60CA7A7A3FA5D448}" { + Prefab "{60CA7A7A3FA5D448}" { - VerticalLayoutWidgetClass "{60CACB3CF08B74DA}" { - Prefab "{60CACB3CF08B74DA}" + ImageWidgetClass "{630471A2C42EBD87}" { + Prefab "{630471A2C42EBD87}" + "Is Visible" 0 + } + } + } + HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { + Prefab "{60CACB3CDBF6E604}" + { + VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { + Prefab "{60CA76C7FD2D43DD}" { - HorizontalLayoutWidgetClass "{60CA7A7A3FA5D448}" { - Prefab "{60CA7A7A3FA5D448}" + VerticalLayoutWidgetClass "{60CACB206FBC43A0}" { + Prefab "{60CACB206FBC43A0}" { - ImageWidgetClass "{630471A2C42EBD87}" { - Prefab "{630471A2C42EBD87}" - "Is Visible" 0 + GridLayoutWidgetClass "{60CACB2005A3A282}" { + Prefab "{60CACB2005A3A282}" + ColumnFill { + 1 1 1 1 1 0 0 0 + } + { + HorizontalLayoutWidgetClass "{60CACB20278C4D64}" { + Prefab "{60CACB20278C4D64}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Target"\ + "Range" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2005A3A28B}" { + Prefab "{60CACB2005A3A28B}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Bullet"\ + "Drop" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2005A3A28E}" { + Prefab "{60CACB2005A3A28E}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Wind"\ + "4 m/s" + } + } + } + HorizontalLayoutWidgetClass "{60CACB21CD9DB8CA}" { + Prefab "{60CACB21CD9DB8CA}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "" + } + } + } + HorizontalLayoutWidgetClass "{60CACB21CD25DE44}" { + Prefab "{60CACB21CD25DE44}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "" + } + } + } + HorizontalLayoutWidgetClass "{689EB4E7B58AA73D}" { + Prefab "{689EB4E7B58AA73D}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{68A0BBD0BB5EF4A7}" { + Prefab "{68A0BBD0BB5EF4A7}" + "Is Visible" 0 + } + VerticalLayoutWidgetClass "{689EB4E47E5C3698}" { + Prefab "{689EB4E47E5C3698}" + "Is Visible" 0 + } + } } } } - HorizontalLayoutWidgetClass "{60CACB3CDBF6E604}" { - Prefab "{60CACB3CDBF6E604}" + VerticalLayoutWidgetClass "{60CACB2315EED092}" { + Prefab "{60CACB2315EED092}" { - VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { - Prefab "{60CA76C7FD2D43DD}" + GridLayoutWidgetClass "{60CACB2315EED09C}" { + Prefab "{60CACB2315EED09C}" + ColumnFill { + 1 1 1 1 1 0 0 0 0 + } { - VerticalLayoutWidgetClass "{60CACB206FBC43A0}" { - Prefab "{60CACB206FBC43A0}" + HorizontalLayoutWidgetClass "{60CACB2315EED084}" { + Prefab "{60CACB2315EED084}" { - GridLayoutWidgetClass "{60CACB2005A3A282}" { - Prefab "{60CACB2005A3A282}" - { - HorizontalLayoutWidgetClass "{60CACB20278C4D64}" { - Prefab "{60CACB20278C4D64}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Target"\ - "Range" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2005A3A28B}" { - Prefab "{60CACB2005A3A28B}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Bullet"\ - "Drop" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2005A3A28E}" { - Prefab "{60CACB2005A3A28E}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "4 m/s" - } - } - } - HorizontalLayoutWidgetClass "{60CACB21CD9DB8CA}" { - Prefab "{60CACB21CD9DB8CA}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "6 m/s" - } - } - } - HorizontalLayoutWidgetClass "{60CACB21CD25DE44}" { - Prefab "{60CACB21CD25DE44}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "Wind"\ - "8 m/s" - } - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "MIL" } } } - VerticalLayoutWidgetClass "{60CACB2315EED092}" { - Prefab "{60CACB2315EED092}" + HorizontalLayoutWidgetClass "{60CACB2315EED087}" { + Prefab "{60CACB2315EED087}" { - GridLayoutWidgetClass "{60CACB2315EED09C}" { - Prefab "{60CACB2315EED09C}" - { - HorizontalLayoutWidgetClass "{60CACB2315EED09A}" { - Prefab "{60CACB2315EED09A}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED084}" { - Prefab "{60CACB2315EED084}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED087}" { - Prefab "{60CACB2315EED087}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - HorizontalLayoutWidgetClass "{60CACB2315EED081}" { - Prefab "{60CACB2315EED081}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "MILs" - } - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "" + } + } + } + HorizontalLayoutWidgetClass "{60CACB2315EED081}" { + Prefab "{60CACB2315EED081}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "" + } + } + } + HorizontalLayoutWidgetClass "{689EB4E6C52CA1A4}" { + Prefab "{689EB4E6C52CA1A4}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{689EB4E6DCB44754}" { + Prefab "{689EB4E6DCB44754}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{689EB4E6D4BB90BB}" { + Prefab "{689EB4E6D4BB90BB}" + "Is Visible" 0 + } + HorizontalLayoutWidgetClass "{689EB4E6D4BB90B9}" { + Prefab "{689EB4E6D4BB90B9}" + "Is Visible" 0 + } + } + } + } + } + VerticalLayoutWidgetClass "{613A662D9616B408}" { + Prefab "{613A662D9616B408}" + { + GridLayoutWidgetClass "{613A662D9616B40A}" { + Prefab "{613A662D9616B40A}" + { + HorizontalLayoutWidgetClass "{613A662D9616B434}" { + Prefab "{613A662D9616B434}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "ZERO" } } } - VerticalLayoutWidgetClass "{613A662D9616B408}" { - Prefab "{613A662D9616B408}" + HorizontalLayoutWidgetClass "{613A662D9616B436}" { + Prefab "{613A662D9616B436}" { - GridLayoutWidgetClass "{613A662D9616B40A}" { - Prefab "{613A662D9616B40A}" - { - HorizontalLayoutWidgetClass "{613A662D9616B434}" { - Prefab "{613A662D9616B434}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "ZERO" - } - } - } - HorizontalLayoutWidgetClass "{613A662D9616B436}" { - Prefab "{613A662D9616B436}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Slot LayoutSlot "{60CA7A7DFDCBF5E1}" { - } - Text "100 M" - } - } - } + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Slot LayoutSlot "{60CA7A7DFDCBF5E1}" { } + Text "100 M" } } } diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c index 85c130bcf..225c5909f 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/ACE_BallisticTableComponent.c @@ -1,13 +1,16 @@ //------------------------------------------------------------------------------------------------ class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass { - [Attribute(SCR_Enum.GetDefault(SCR_EOpticsAngleUnits.MILLIRADIANS), uiwidget: UIWidgets.ComboBox, enums: ParamEnumArray.FromEnum(SCR_EOpticsAngleUnits))] + [Attribute(SCR_Enum.GetDefault(SCR_EOpticsAngleUnits.MILLIRADIANS), uiwidget: UIWidgets.ComboBox, enums: ParamEnumArray.FromEnum(SCR_EOpticsAngleUnits), category: "Layouts")] protected SCR_EOpticsAngleUnits m_eUnitType; + [Attribute(defvalue: "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout", uiwidget: UIWidgets.ResourceNamePicker, category: "Layouts")] + protected ResourceName m_sACE_TableLayoutName; + //------------------------------------------------------------------------------------------------ void UpdateBallisticData() { - m_aBallisticPages.Clear(); + m_aPages.Clear(); SCR_ChimeraCharacter player = SCR_ChimeraCharacter.Cast(SCR_PlayerController.GetLocalControlledEntity()); if (!player) @@ -45,13 +48,13 @@ class ACE_BallisticTableComponentClass : SCR_BallisticTableComponentClass } } - m_aBallisticPages.Reserve(allBulletPrefab.Count()); + m_aPages.Reserve(allBulletPrefab.Count()); foreach (int i, ResourceName bulletPrefab : allBulletPrefab) { - ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, speedCoefs[i], defaultZeroingRanges[i], m_eUnitType); + ACE_VisualisedBallisticConfig page = new ACE_VisualisedBallisticConfig(bulletPrefab, speedCoefs[i], defaultZeroingRanges[i], m_sACE_TableLayoutName, m_eUnitType); page.GenerateBallisticData(); - m_aBallisticPages.Insert(page); + m_aPages.Insert(page); } } } diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 1fd06def6..22f8ffb8c 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -3,11 +3,11 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig protected float m_fInitSpeedCoef; protected float m_fDefaultZeroingRange; - protected static const ref array WIND_SPEEDS = {4, 6, 8}; + protected static const float WIND_SPEED = 4.0; protected static const float MIN_DROP = -30.0; //------------------------------------------------------------------------------------------------ - void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, float initSpeedCoef = 1.0, float defaultZeroingRange = 100.0, SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) + void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, float initSpeedCoef = 1.0, float defaultZeroingRange = 100.0, ResourceName tableLayoutName = "", SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) { m_sProjectilePrefab = projectilePrefab; m_sDisplayedText = FilePath.StripExtension(FilePath.StripPath(projectilePrefab)); @@ -21,6 +21,12 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig m_iElevationChangeDownRange = 50; m_fDefaultZeroingRange = defaultZeroingRange; m_fStandardDispersion = defaultZeroingRange; + + m_sLayoutName = tableLayoutName; + m_sRowPrefab = "{F75FE2331AF70BF8}UI/layouts/Gadgets/BallisticTable/ContentRowLayout.layout"; + m_sCellPrefab = "{801F5CED215A1CFF}UI/layouts/Gadgets/BallisticTable/Content.layout"; + m_aGridFillWeights = {1, 1, 1, 1, 1}; + m_sAverageDispersionFormat = "%1 m"; } //------------------------------------------------------------------------------------------------ @@ -34,32 +40,22 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig ProjectileMoveComponent moveComponent = ProjectileMoveComponent.Cast(dummy.FindComponent(ProjectileMoveComponent)); array> ballisticValues = {}; - float zeroDrop = 0.0; + const float time; + float zeroDrop = ComputeProjectileDrop(moveComponent, m_fDefaultZeroingRange, time); for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) { array row = {range}; - row.Resize(2 + WIND_SPEEDS.Count()); + row.Resize(3); - float time; - float height = BallisticTable.GetHeightFromProjectile(range, time, dummy, m_fProjectileInitSpeedCoef); - float drop = -SCR_Math.ConvertFromRadians(Math.Atan2(height, range), m_eUnitType); + float drop = ComputeProjectileDrop(moveComponent, range, time); if (drop < MIN_DROP) break; row[1] = drop; - - if (range == m_fDefaultZeroingRange) - zeroDrop = drop; - - foreach (int i, float windSpeed : WIND_SPEEDS) - { - float xOffset = ComputeProjectileWindageOffset(moveComponent, initialSpeed, windSpeed, drop, time); - float windage = SCR_Math.ConvertFromRadians(Math.Atan2(xOffset, range), m_eUnitType); - row[2 + i] = ACE_Math.Round(windage, 1); - } - + float windage = ComputeProjectileWindage(moveComponent, initialSpeed, WIND_SPEED, range, drop, time); + row[2] = ACE_Math.Round(windage, 1); ballisticValues.Insert(row); } @@ -93,8 +89,14 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig return (ballisticData.ACE_GetUnitType() == m_eUnitType) && (ballisticData.ACE_GetDefaultZeroingRange() == m_fDefaultZeroingRange); } + protected float ComputeProjectileDrop(ProjectileMoveComponent moveComponent, float range, float time) + { + float height = BallisticTable.GetHeightFromProjectile(range, time, moveComponent.GetParentProjectile(), m_fProjectileInitSpeedCoef); + return -SCR_Math.ConvertFromRadians(Math.Atan2(height, range), m_eUnitType); + } + //------------------------------------------------------------------------------------------------ - protected float ComputeProjectileWindageOffset(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float drop, float time) + protected float ComputeProjectileWindage(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float range, float drop, float time) { vector offset = moveComponent.GetProjectileSimulationResult( vector.Zero, // initPosition @@ -103,8 +105,8 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig 0, // initAzimuth {windSpeed, 0, 0}, // windVelocity 0, // targetHeight - time, // maxSimulationTime + maxSimulationTime: time, // maxSimulationTime ); - return offset[0]; + return SCR_Math.ConvertFromRadians(Math.Atan2(offset[0], range), m_eUnitType); } } diff --git a/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c b/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c index 1698b5848..51e3bf238 100644 --- a/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c +++ b/addons/core/scripts/Game/ACE_Core/Systems/Persistence/Serializers/States/ACE_LoadtimeEntityManagerStateSerializer.c @@ -13,7 +13,7 @@ class ACE_LoadtimeEntityManagerStateSerializer : ScriptedStateSerializer } //------------------------------------------------------------------------------------------------ - override ESerializeResult Serialize(notnull Managed instance, notnull BaseSerializationSaveContext context) + override ESerializeResult Serialize(notnull Managed instance, notnull SaveContext context) { ACE_LoadtimeEntityManager manager = ACE_LoadtimeEntityManager.GetInstance(); if (!manager) @@ -38,7 +38,7 @@ class ACE_LoadtimeEntityManagerStateSerializer : ScriptedStateSerializer } //------------------------------------------------------------------------------------------------ - override bool Deserialize(notnull Managed instance, notnull BaseSerializationLoadContext context) + override bool Deserialize(notnull Managed instance, notnull LoadContext context) { ACE_LoadtimeEntityManager manager = ACE_LoadtimeEntityManager.GetInstance(); if (!manager) diff --git a/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c b/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c index bfe7168ad..8bab8b6e5 100644 --- a/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c +++ b/addons/core/scripts/Game/ACE_Core/UI/HUD/AvailableActions/Conditions/ACE_IsCharacterCarrierCondition.c @@ -4,7 +4,7 @@ class ACE_IsCharacterCarrierCondition : SCR_AvailableActionCondition { //------------------------------------------------------------------------------------------------ //! Returns true if the release action is available - override bool IsAvailable(SCR_AvailableActionsConditionData data) + override bool IsAvailable(notnull SCR_AvailableActionsConditionData data) { if (!data) return false; From 384876af254983b7010eddd6aacde303e0d3bbc3 Mon Sep 17 00:00:00 2001 From: Kex Date: Fri, 19 Jun 2026 04:07:28 +0200 Subject: [PATCH 44/62] Use new ACE bullet tools for ballistic calculations --- .../Configs/ACE_VisualisedBallisticConfig.c | 38 ++++++------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 22f8ffb8c..a41da35e5 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -3,8 +3,8 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig protected float m_fInitSpeedCoef; protected float m_fDefaultZeroingRange; - protected static const float WIND_SPEED = 4.0; - protected static const float MIN_DROP = -30.0; + protected static const float WIND_SPEED = 4.0; // [m/s] + protected static const float MIN_DROP = -30.0; // [mrad] //------------------------------------------------------------------------------------------------ void ACE_VisualisedBallisticConfig(ResourceName projectilePrefab, float initSpeedCoef = 1.0, float defaultZeroingRange = 100.0, ResourceName tableLayoutName = "", SCR_EOpticsAngleUnits unitType = SCR_EOpticsAngleUnits.MILLIRADIANS) @@ -36,25 +36,25 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig return true; float initialSpeed = m_fProjectileInitSpeedCoef * ACE_BulletTools.GetInitialSpeed(m_sProjectilePrefab); - IEntity dummy = GetGame().SpawnEntityPrefabLocal(Resource.Load(m_sProjectilePrefab), GetGame().GetWorld()); - ProjectileMoveComponent moveComponent = ProjectileMoveComponent.Cast(dummy.FindComponent(ProjectileMoveComponent)); + IEntitySource projectileSource = Resource.Load(m_sProjectilePrefab).GetResource().ToBaseContainer(); array> ballisticValues = {}; - const float time; - float zeroDrop = ComputeProjectileDrop(moveComponent, m_fDefaultZeroingRange, time); + float time; + float zeroDrop = ComputeProjectileDrop(projectileSource, m_fDefaultZeroingRange, initialSpeed, time); for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) { array row = {range}; row.Resize(3); - float drop = ComputeProjectileDrop(moveComponent, range, time); + float drop = ComputeProjectileDrop(projectileSource, range, initialSpeed, time); if (drop < MIN_DROP) break; row[1] = drop; - float windage = ComputeProjectileWindage(moveComponent, initialSpeed, WIND_SPEED, range, drop, time); + float drift = ACE_BulletTools.ComputeLateralDrift(projectileSource, initialSpeed, WIND_SPEED, time); + float windage = SCR_Math.ConvertFromRadians(Math.Atan2(drift, range), m_eUnitType); row[2] = ACE_Math.Round(windage, 1); ballisticValues.Insert(row); } @@ -65,8 +65,6 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig ballisticValues[i][1] = ACE_Math.Round(ballisticValues[i][1] - zeroDrop, 1); } - SCR_EntityHelper.DeleteEntityAndChildren(dummy); - SCR_BallisticData ballisticData = new SCR_BallisticData(ballisticValues, m_sProjectilePrefab, m_bDirectFireMode, m_iRangeStep, m_fProjectileInitSpeedCoef); ballisticData.ACE_SetUnitType(m_eUnitType); ballisticData.ACE_SetDefaultZeroingRange(m_fDefaultZeroingRange); @@ -89,24 +87,10 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig return (ballisticData.ACE_GetUnitType() == m_eUnitType) && (ballisticData.ACE_GetDefaultZeroingRange() == m_fDefaultZeroingRange); } - protected float ComputeProjectileDrop(ProjectileMoveComponent moveComponent, float range, float time) - { - float height = BallisticTable.GetHeightFromProjectile(range, time, moveComponent.GetParentProjectile(), m_fProjectileInitSpeedCoef); - return -SCR_Math.ConvertFromRadians(Math.Atan2(height, range), m_eUnitType); - } - //------------------------------------------------------------------------------------------------ - protected float ComputeProjectileWindage(ProjectileMoveComponent moveComponent, float initialSpeed, float windSpeed, float range, float drop, float time) + protected float ComputeProjectileDrop(IEntitySource projectileSource, float range, float initialSpeed, out float time) { - vector offset = moveComponent.GetProjectileSimulationResult( - vector.Zero, // initPosition - initialSpeed, // initSpeed - -Math.RAD2DEG * SCR_Math.ConvertToRadians(drop, m_eUnitType), // initElevationAngle - 0, // initAzimuth - {windSpeed, 0, 0}, // windVelocity - 0, // targetHeight - maxSimulationTime: time, // maxSimulationTime - ); - return SCR_Math.ConvertFromRadians(Math.Atan2(offset[0], range), m_eUnitType); + float elevationAngle = ACE_BulletTools.ComputeElevationAngleForRange(projectileSource, range, initialSpeed, time); + return -SCR_Math.ConvertFromRadians(elevationAngle, m_eUnitType); } } From f574aa9a56cb7af2c28904421ff639d59e344741 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 20 Jun 2026 15:54:19 +0200 Subject: [PATCH 45/62] Remove unused method --- .../Gadgets/Configs/ACE_VisualisedBallisticConfig.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index 47a8ca059..a41da35e5 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -87,12 +87,6 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig return (ballisticData.ACE_GetUnitType() == m_eUnitType) && (ballisticData.ACE_GetDefaultZeroingRange() == m_fDefaultZeroingRange); } - protected float ComputeProjectileDrop(ProjectileMoveComponent moveComponent, float range, float time) - { - float height = BallisticTable.GetHeightFromProjectile(range, time, moveComponent.GetParentProjectile(), m_fProjectileInitSpeedCoef); - return -SCR_Math.ConvertFromRadians(Math.Atan2(height, range), m_eUnitType); - } - //------------------------------------------------------------------------------------------------ protected float ComputeProjectileDrop(IEntitySource projectileSource, float range, float initialSpeed, out float time) { From 6a27875ce760640674dba5cb5acd3c397e2d2537 Mon Sep 17 00:00:00 2001 From: Kex Date: Wed, 24 Jun 2026 20:28:20 +0200 Subject: [PATCH 46/62] Carrying - Fix exploits and crashes (#459) * Do not allow carrying while sitting in a vehicle * Explicitly assign all actions to helper compartments * Only do a single attempt for moving characters in/out from compartments * Directly transfer to helper compartment if possible * Directly transfer to helper compartment if possible * Use ACE_CanCarry for checking that escort can carry captive * Enable action manager component for helper --- ...ACE_Captives_SurrenderHelperCompartment.et | 8 ++ .../ACE_Captives_TiedHelperCompartment.et | 2 +- .../SCR_RemoveCasualtyUserAction.c | 24 +++--- .../ACE_Carrying_BaseHelperCompartment.et | 2 + .../SCR_RemoveCasualtyUserAction.c | 9 +- .../Helpers/ACE_AnimationHelperCompartment.et | 9 +- .../SCR_CharacterControllerComponent.c | 4 + .../Vehicle/SCR_CompartmentAccessComponent.c | 86 +++---------------- 8 files changed, 45 insertions(+), 99 deletions(-) diff --git a/addons/captives/Prefabs/Helpers/ACE_Captives_SurrenderHelperCompartment.et b/addons/captives/Prefabs/Helpers/ACE_Captives_SurrenderHelperCompartment.et index 3f27e5726..a4d86a925 100644 --- a/addons/captives/Prefabs/Helpers/ACE_Captives_SurrenderHelperCompartment.et +++ b/addons/captives/Prefabs/Helpers/ACE_Captives_SurrenderHelperCompartment.et @@ -1,6 +1,14 @@ ACE_Captives_SurrenderHelperCompartment : "{0D226790BE615DC7}Prefabs/Helpers/ACE_AnimationHelperCompartment.et" { ID "4B42E71698F5739C" components { + SCR_BaseCompartmentManagerComponent "{2CD4A765A7D52986}" { + CompartmentSlots { + CargoCompartmentSlot Performer { + GetOutAction SCR_GetOutAction "{69AD265674DA6E68}" { + } + } + } + } VehicleAnimationComponent "{50B812962B17E60B}" { AnimInstance "{EF71DF39A69DC55A}Assets/Helpers/Workspace/ACE_Captives_Surrender.asi" AnimInjection AnimationAttachmentInfo "{50B812961A339FD2}" { diff --git a/addons/captives/Prefabs/Helpers/ACE_Captives_TiedHelperCompartment.et b/addons/captives/Prefabs/Helpers/ACE_Captives_TiedHelperCompartment.et index d69e02bad..d8d44f808 100644 --- a/addons/captives/Prefabs/Helpers/ACE_Captives_TiedHelperCompartment.et +++ b/addons/captives/Prefabs/Helpers/ACE_Captives_TiedHelperCompartment.et @@ -12,7 +12,7 @@ ACE_Captives_TiedHelperCompartment : "{0D226790BE615DC7}Prefabs/Helpers/ACE_Anim SCR_BaseCompartmentManagerComponent "{2CD4A765A7D52986}" { CompartmentSlots { CargoCompartmentSlot Performer { - GetOutAction CompartmentUserAction "{64771541B779685D}" { + GetOutAction CompartmentUserAction "{69AD26567CC01AEE}" { } } } diff --git a/addons/captives/scripts/Game/ACE_Captives/UserActions/SCR_RemoveCasualtyUserAction.c b/addons/captives/scripts/Game/ACE_Captives/UserActions/SCR_RemoveCasualtyUserAction.c index d46dfaf7e..5e6c65dc7 100644 --- a/addons/captives/scripts/Game/ACE_Captives/UserActions/SCR_RemoveCasualtyUserAction.c +++ b/addons/captives/scripts/Game/ACE_Captives/UserActions/SCR_RemoveCasualtyUserAction.c @@ -25,10 +25,6 @@ modded class SCR_RemoveCasualtyUserAction : SCR_CompartmentUserAction if (!captiveChar) return; - SCR_CompartmentAccessComponent captiveCompartmentAccess = SCR_CompartmentAccessComponent.Cast(captiveChar.GetCompartmentAccessComponent()); - if (captiveCompartmentAccess) - captiveCompartmentAccess.KickFromVehicle(GetRelevantDoorIndex(pUserEntity)); - ACE_AnimationHelperCompartment helper = ACE_AnimationTools.AnimateWithHelperCompartment(ACE_EAnimationHelperID.TIED, captiveChar); if (!helper) return; @@ -119,21 +115,21 @@ modded class SCR_RemoveCasualtyUserAction : SCR_CompartmentUserAction if (!userChar) return false; - // Cannot be performed when already carrying - SCR_CharacterControllerComponent userCharController = SCR_CharacterControllerComponent.Cast(userChar.GetCharacterController()); - if (!userCharController || userCharController.ACE_IsCarrier()) - { - SetCannotPerformReason("#ACE-UserAction_Carrying"); + BaseCompartmentSlot compartment = GetCompartmentSlot(); + if (!compartment) return false; - } - SCR_CompartmentAccessComponent compartmentAccess = SCR_CompartmentAccessComponent.Cast(userChar.GetCompartmentAccessComponent()); - if (!compartmentAccess) + SCR_ChimeraCharacter captiveChar = SCR_ChimeraCharacter.Cast(compartment.GetOccupant()); + if (!captiveChar) return false; - BaseCompartmentSlot compartment = GetCompartmentSlot(); - if (!compartment) + string cannotPerformReason; + SCR_CharacterControllerComponent userCharController = SCR_CharacterControllerComponent.Cast(userChar.GetCharacterController()); + if (!userCharController || !userCharController.ACE_CanCarry(captiveChar, cannotPerformReason)) + { + SetCannotPerformReason(cannotPerformReason); return false; + } return true; } diff --git a/addons/carrying/Prefabs/Helpers/ACE_Carrying_BaseHelperCompartment.et b/addons/carrying/Prefabs/Helpers/ACE_Carrying_BaseHelperCompartment.et index 95da23f44..b85b99d8f 100644 --- a/addons/carrying/Prefabs/Helpers/ACE_Carrying_BaseHelperCompartment.et +++ b/addons/carrying/Prefabs/Helpers/ACE_Carrying_BaseHelperCompartment.et @@ -11,6 +11,8 @@ ACE_Carrying_HelperCompartment : "{0D226790BE615DC7}Prefabs/Helpers/ACE_Animatio SCR_BaseCompartmentManagerComponent "{2CD4A765A7D52986}" { CompartmentSlots { CargoCompartmentSlot Performer { + GetOutAction CompartmentUserAction "{69AD265654380459}" { + } OverrideEntryPositionInfo PointInfo "{670E0D3DB86D5304}" { } OverrideExitPositionInfo PointInfo "{670E0D3DB3C80C6C}" { diff --git a/addons/carrying/Scripts/Game/ACE_Carrying/UserActions/SCR_RemoveCasualtyUserAction.c b/addons/carrying/Scripts/Game/ACE_Carrying/UserActions/SCR_RemoveCasualtyUserAction.c index 262c74204..994481847 100644 --- a/addons/carrying/Scripts/Game/ACE_Carrying/UserActions/SCR_RemoveCasualtyUserAction.c +++ b/addons/carrying/Scripts/Game/ACE_Carrying/UserActions/SCR_RemoveCasualtyUserAction.c @@ -5,9 +5,6 @@ modded class SCR_RemoveCasualtyUserAction : SCR_CompartmentUserAction //! Initate carry when possible override protected void PerformRemoveCasualtyAction(IEntity pOwnerEntity, IEntity pUserEntity) { - // First call the base implementation, which ejects the character from the vehicle - super.PerformRemoveCasualtyAction(pOwnerEntity, pUserEntity); - BaseCompartmentSlot compartment = GetCompartmentSlot(); if (!compartment) return; @@ -24,12 +21,10 @@ modded class SCR_RemoveCasualtyUserAction : SCR_CompartmentUserAction if (!userCharController) return; - // We just eject AI for now. Trying to carrying them immediatly breaks their animation - if (!EntityUtils.IsPlayer(casualtyChar)) - return; - string cannotPerformReason; if (userCharController.ACE_Carrying_CanCarryCasualty(casualtyChar, cannotPerformReason)) userCharController.ACE_Carrying_CarryCasualty(casualtyChar); + else + super.PerformRemoveCasualtyAction(pOwnerEntity, pUserEntity); // Just eject them if not carriable } } diff --git a/addons/core/Prefabs/Helpers/ACE_AnimationHelperCompartment.et b/addons/core/Prefabs/Helpers/ACE_AnimationHelperCompartment.et index d71eb9577..7fc26363a 100644 --- a/addons/core/Prefabs/Helpers/ACE_AnimationHelperCompartment.et +++ b/addons/core/Prefabs/Helpers/ACE_AnimationHelperCompartment.et @@ -19,6 +19,12 @@ ACE_AnimationHelperCompartment : "{278E487E19D82680}Prefabs/Vehicles/Core/Vehicl } CompartmentSlots { CargoCompartmentSlot Performer { + CompartmentAction CompartmentUserAction "{69AD265658BC24AA}" { + } + JumpOutAction CompartmentUserAction "{69AD265659781649}" { + } + SwitchSeatAction CompartmentUserAction "{69AD26565F43CFA0}" { + } PassengerPositionInfo EntitySlotInfo s1 { } ForcedFreeLook 1 @@ -45,9 +51,6 @@ ACE_AnimationHelperCompartment : "{278E487E19D82680}Prefabs/Vehicles/Core/Vehicl m_fDist_Desired 1 m_fFOV 74 } - ActionsManagerComponent "{2CD4A765B4482F53}" { - Enabled 0 - } VehicleAnimationComponent "{50B812962B17E60B}" { AnimGraph "{30A78C04E5385196}Assets/Helpers/Workspace/ACE_AnimationHelperCompartment.agr" AnimInstance "{A0A5BCBD5629BADB}Assets/Helpers/Workspace/ACE_AnimationHelperCompartment.asi" diff --git a/addons/core/scripts/Game/ACE_Core/Character/SCR_CharacterControllerComponent.c b/addons/core/scripts/Game/ACE_Core/Character/SCR_CharacterControllerComponent.c index 2f5da6e9d..d28735ca1 100644 --- a/addons/core/scripts/Game/ACE_Core/Character/SCR_CharacterControllerComponent.c +++ b/addons/core/scripts/Game/ACE_Core/Character/SCR_CharacterControllerComponent.c @@ -73,6 +73,10 @@ modded class SCR_CharacterControllerComponent : CharacterControllerComponent //------------------------------------------------------------------------------------------------ bool ACE_CanCarry(IEntity entity, out string cannotPerformReason) { + SCR_ChimeraCharacter ownerChar = SCR_ChimeraCharacter.Cast(GetOwner()); + if (!ownerChar || ownerChar.IsInVehicle()) + return false; + if (ACE_IsCarrier()) { cannotPerformReason = "#ACE-UserAction_Carrying"; diff --git a/addons/core/scripts/Game/ACE_Core/Vehicle/SCR_CompartmentAccessComponent.c b/addons/core/scripts/Game/ACE_Core/Vehicle/SCR_CompartmentAccessComponent.c index eb1527eb4..111fd8fc7 100644 --- a/addons/core/scripts/Game/ACE_Core/Vehicle/SCR_CompartmentAccessComponent.c +++ b/addons/core/scripts/Game/ACE_Core/Vehicle/SCR_CompartmentAccessComponent.c @@ -5,10 +5,6 @@ modded class SCR_CompartmentAccessComponent : CompartmentAccessComponent protected bool m_bACE_IsRequestingGettingIn = false; protected bool m_bACE_IsRequestingGettingOut = false; - // Parameters for rescheduling failed get in/out - protected static const int ATTEMPT_TIMEOUT = 500; - protected static const int MAX_ATTEMPTS = 20; - //------------------------------------------------------------------------------------------------ void ACE_GetInVehicle(notnull IEntity vehicle, BaseCompartmentSlot compartment = null, bool forceTeleport = true, int doorInfoIndex = -1, ECloseDoorAfterActions closeDoor = ECloseDoorAfterActions.INVALID, bool performWhenPaused = false) { @@ -20,12 +16,12 @@ modded class SCR_CompartmentAccessComponent : CompartmentAccessComponent return; ACE_SetIsRequestingGettingIn(true); - Rpc(RpcDo_ACE_GetInVehicle_Owner, vehicleRpl.Id(), compartment.GetCompartmentSlotID(), compartment.GetCompartmentMgrID(), forceTeleport, doorInfoIndex, closeDoor, performWhenPaused, 0); + Rpc(RpcDo_ACE_GetInVehicle_Owner, vehicleRpl.Id(), compartment.GetCompartmentSlotID(), compartment.GetCompartmentMgrID(), forceTeleport, doorInfoIndex, closeDoor, performWhenPaused); } //------------------------------------------------------------------------------------------------ [RplRpc(RplChannel.Reliable, RplRcver.Owner)] - protected void RpcDo_ACE_GetInVehicle_Owner(RplId vehicleID, int slotID, int mgrID, bool forceTeleport, int doorInfoIndex, ECloseDoorAfterActions closeDoor, bool performWhenPaused, int iAttempt) + protected void RpcDo_ACE_GetInVehicle_Owner(RplId vehicleID, int slotID, int mgrID, bool forceTeleport, int doorInfoIndex, ECloseDoorAfterActions closeDoor, bool performWhenPaused) { RplComponent vehicleRpl = RplComponent.Cast(Replication.FindItem(vehicleID)); @@ -56,27 +52,8 @@ modded class SCR_CompartmentAccessComponent : CompartmentAccessComponent return; } - if (GetInVehicle(vehicle, compartment, forceTeleport, doorInfoIndex, closeDoor, performWhenPaused)) - { - ACE_SetIsRequestingGettingIn(false); - return; - } - - if (GetVehicleIn(GetOwner()) == vehicle) - { - ACE_SetIsRequestingGettingIn(false); - return; - } - - if (++iAttempt >= MAX_ATTEMPTS) - { - Debug.Error("Maximum number of attempts exceeded!"); - ACE_SetIsRequestingGettingIn(false); - return; - } - - // Reschedule moving out if it failed, for instance, when called while moving out - GetGame().GetCallqueue().CallLater(RpcDo_ACE_GetInVehicle_Owner, ATTEMPT_TIMEOUT, false, vehicleID, slotID, mgrID, forceTeleport, doorInfoIndex, closeDoor, performWhenPaused, iAttempt); + GetInVehicle(vehicle, compartment, forceTeleport, doorInfoIndex, closeDoor, performWhenPaused); + ACE_SetIsRequestingGettingIn(false); } //------------------------------------------------------------------------------------------------ @@ -123,71 +100,32 @@ modded class SCR_CompartmentAccessComponent : CompartmentAccessComponent void ACE_MoveOutVehicle(vector target_transform[4], bool sendIntoRagdoll = false, bool performWhenPaused = false) { ACE_SetIsRequestingGettingOut(true); - Rpc(RpcDo_ACE_MoveOutVehicle_Owner, target_transform[0], target_transform[1], target_transform[2], target_transform[3], sendIntoRagdoll, performWhenPaused, 0); + Rpc(RpcDo_ACE_MoveOutVehicle_Owner, target_transform[0], target_transform[1], target_transform[2], target_transform[3], sendIntoRagdoll, performWhenPaused); } //------------------------------------------------------------------------------------------------ //! Transform is passed in parts, since fixed arrays are not supported by ScriptCallQueue::CallLater [RplRpc(RplChannel.Reliable, RplRcver.Owner)] - protected void RpcDo_ACE_MoveOutVehicle_Owner(vector v0, vector v1, vector v2, vector v3, bool sendIntoRagdoll, bool performWhenPaused, int iAttempt) + protected void RpcDo_ACE_MoveOutVehicle_Owner(vector v0, vector v1, vector v2, vector v3, bool sendIntoRagdoll, bool performWhenPaused) { vector target_transform[4] = {v0, v1, v2, v3}; - - if (GetOutVehicle_NoDoor(target_transform, sendIntoRagdoll, performWhenPaused)) - { - ACE_SetIsRequestingGettingOut(false); - return; - } - - if (!GetVehicleIn(GetOwner())) - { - ACE_SetIsRequestingGettingOut(false); - return; - } - - if (++iAttempt >= MAX_ATTEMPTS) - { - Debug.Error("Maximum number of attempts exceeded!"); - ACE_SetIsRequestingGettingOut(false); - return; - } - - // Reschedule moving out if it failed, for instance, when called while moving in - GetGame().GetCallqueue().CallLater(RpcDo_ACE_MoveOutVehicle_Owner, ATTEMPT_TIMEOUT, false, v0, v1, v2, v3, sendIntoRagdoll, performWhenPaused, iAttempt); + GetOutVehicle_NoDoor(target_transform, sendIntoRagdoll, performWhenPaused); + ACE_SetIsRequestingGettingOut(false); } //------------------------------------------------------------------------------------------------ void ACE_GetOutVehicle(EGetOutType type, int doorInfoIndex, ECloseDoorAfterActions closeDoor, bool performWhenPaused) { ACE_SetIsRequestingGettingOut(true); - Rpc(RpcDo_ACE_GetOutVehicle_Owner, type, doorInfoIndex, closeDoor, performWhenPaused, 0); + Rpc(RpcDo_ACE_GetOutVehicle_Owner, type, doorInfoIndex, closeDoor, performWhenPaused); } //------------------------------------------------------------------------------------------------ [RplRpc(RplChannel.Reliable, RplRcver.Owner)] - protected void RpcDo_ACE_GetOutVehicle_Owner(EGetOutType type, int doorInfoIndex, ECloseDoorAfterActions closeDoor, bool performWhenPaused, int iAttempt) + protected void RpcDo_ACE_GetOutVehicle_Owner(EGetOutType type, int doorInfoIndex, ECloseDoorAfterActions closeDoor, bool performWhenPaused) { - if (GetOutVehicle(type, doorInfoIndex, closeDoor, performWhenPaused)) - { - ACE_SetIsRequestingGettingOut(false); - return; - } - - if (!GetVehicleIn(GetOwner())) - { - ACE_SetIsRequestingGettingOut(false); - return; - } - - if (++iAttempt >= MAX_ATTEMPTS) - { - Debug.Error("Maximum number of attempts exceeded!"); - ACE_SetIsRequestingGettingOut(false); - return; - } - - // Reschedule getting out if it failed, for instance, when called while getting in - GetGame().GetCallqueue().CallLater(RpcDo_ACE_GetOutVehicle_Owner, ATTEMPT_TIMEOUT, false, type, doorInfoIndex, closeDoor, performWhenPaused, iAttempt); + GetOutVehicle(type, doorInfoIndex, closeDoor, performWhenPaused); + ACE_SetIsRequestingGettingOut(false); } //------------------------------------------------------------------------------------------------ From 3bd91234a424e47d36b7d41d80bf17bd28fd5a81 Mon Sep 17 00:00:00 2001 From: Kex Date: Sat, 27 Jun 2026 21:40:11 +0200 Subject: [PATCH 47/62] Add lead row to ballistic tables --- .../ACE_BallisticTable_Mrads.layout | 22 ++++++++++++++++++- .../ACE_BallisticTable_WpMils.layout | 12 ++-------- .../Configs/ACE_VisualisedBallisticConfig.c | 5 ++++- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout index c284f384a..ee03001b6 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_Mrads.layout @@ -9,6 +9,26 @@ FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_Ball VerticalLayoutWidgetClass "{60CA76C7FD2D43DD}" { Prefab "{60CA76C7FD2D43DD}" { + VerticalLayoutWidgetClass "{60CACB206FBC43A0}" { + Prefab "{60CACB206FBC43A0}" + { + GridLayoutWidgetClass "{60CACB2005A3A282}" { + Prefab "{60CACB2005A3A282}" + { + HorizontalLayoutWidgetClass "{60CACB21CD9DB8CA}" { + Prefab "{60CACB21CD9DB8CA}" + { + TextWidgetClass "{60CA7A78C5ED06C0}" { + Prefab "{60CA7A78C5ED06C0}" + Text "Lead"\ + "1 m/s" + } + } + } + } + } + } + } VerticalLayoutWidgetClass "{60CACB2315EED092}" { Prefab "{60CACB2315EED092}" { @@ -38,7 +58,7 @@ FrameWidgetClass : "{FC58AB2BEBBA6D0E}UI/layouts/Gadgets/BallisticTable/ACE_Ball { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" - Text "" + Text "MRAD" } } } diff --git a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout index 6eb0d6f06..981b0d23a 100644 --- a/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout +++ b/addons/ballistics/UI/layouts/Gadgets/BallisticTable/ACE_BallisticTable_WpMils.layout @@ -62,7 +62,8 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti { TextWidgetClass "{60CA7A78C5ED06C0}" { Prefab "{60CA7A78C5ED06C0}" - Text "" + Text "Lead"\ + "1 m/s" } } } @@ -109,15 +110,6 @@ FrameWidgetClass : "{6E4CC0DD94FAB365}UI/layouts/Gadgets/BallisticTable/Ballisti } } } - HorizontalLayoutWidgetClass "{60CACB2315EED087}" { - Prefab "{60CACB2315EED087}" - { - TextWidgetClass "{60CA7A78C5ED06C0}" { - Prefab "{60CA7A78C5ED06C0}" - Text "" - } - } - } HorizontalLayoutWidgetClass "{60CACB2315EED081}" { Prefab "{60CACB2315EED081}" { diff --git a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c index a41da35e5..54327d4a3 100644 --- a/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c +++ b/addons/ballistics/scripts/Game/ACE_Ballistics/Components/Gadgets/Configs/ACE_VisualisedBallisticConfig.c @@ -4,6 +4,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig protected float m_fDefaultZeroingRange; protected static const float WIND_SPEED = 4.0; // [m/s] + protected static const float TARGET_SPEED = 1.0; // [m/s] protected static const float MIN_DROP = -30.0; // [mrad] //------------------------------------------------------------------------------------------------ @@ -45,7 +46,7 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig for (int range = m_iMinRange; range <= m_iMaxRange; range += m_iRangeStep) { array row = {range}; - row.Resize(3); + row.Resize(4); float drop = ComputeProjectileDrop(projectileSource, range, initialSpeed, time); @@ -56,6 +57,8 @@ class ACE_VisualisedBallisticConfig : SCR_VisualisedBallisticConfig float drift = ACE_BulletTools.ComputeLateralDrift(projectileSource, initialSpeed, WIND_SPEED, time); float windage = SCR_Math.ConvertFromRadians(Math.Atan2(drift, range), m_eUnitType); row[2] = ACE_Math.Round(windage, 1); + float lead = SCR_Math.ConvertFromRadians(Math.Atan2(TARGET_SPEED * time, range), m_eUnitType); + row[3] = ACE_Math.Round(lead, 1); ballisticValues.Insert(row); } From ab8c6798024c51e32c3b0082b4d6c8fbe06843e8 Mon Sep 17 00:00:00 2001 From: Kex Date: Wed, 8 Jul 2026 21:30:38 +0200 Subject: [PATCH 48/62] Add ACE catalog multi list entry --- .../EntityCatalog/ACE_EntityCatalogMultiListEntry.c | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 addons/core/scripts/Game/ACE_Core/EntityCatalog/ACE_EntityCatalogMultiListEntry.c diff --git a/addons/core/scripts/Game/ACE_Core/EntityCatalog/ACE_EntityCatalogMultiListEntry.c b/addons/core/scripts/Game/ACE_Core/EntityCatalog/ACE_EntityCatalogMultiListEntry.c new file mode 100644 index 000000000..98d6e0bf3 --- /dev/null +++ b/addons/core/scripts/Game/ACE_Core/EntityCatalog/ACE_EntityCatalogMultiListEntry.c @@ -0,0 +1,6 @@ +//---------------------------------------------------------------------------- +//! Same as vanilla, but can be a standalone conf file +[BaseContainerProps(configRoot: true), SCR_BaseContainerCustomEntityCatalogMultiListEntry("m_sIdentifier", "m_aEntities")] +class ACE_EntityCatalogMultiListEntry : SCR_EntityCatalogMultiListEntry +{ +} From 0611076713ba1653850184ca86953138d13b86cf Mon Sep 17 00:00:00 2001 From: Kex Date: Wed, 8 Jul 2026 21:31:54 +0200 Subject: [PATCH 49/62] Creat ACE items configs --- .../EntityCatalog/ACE_InventoryItemsBase.conf | 23 +++++++++++++++++++ .../ACE_InventoryItemsBase.conf.meta | 17 ++++++++++++++ .../FIA/ACE_FIA_InventoryItems.conf | 2 ++ .../FIA/ACE_FIA_InventoryItems.conf.meta | 17 ++++++++++++++ .../EntityCatalog/FIA/FIA_InventoryItems.conf | 22 +----------------- .../UK/ACE_UK_InventoryItems.conf | 2 ++ .../UK/ACE_UK_InventoryItems.conf.meta | 17 ++++++++++++++ .../EntityCatalog/UK/UK_InventoryItems.conf | 6 +++++ .../UK/UK_InventoryItems.conf.meta | 17 ++++++++++++++ .../US/ACE_US_InventoryItems.conf | 2 ++ .../US/ACE_US_InventoryItems.conf.meta | 17 ++++++++++++++ .../EntityCatalog/US/US_InventoryItems.conf | 22 +----------------- .../USSR/ACE_USSR_InventoryItems.conf | 2 ++ .../USSR/ACE_USSR_InventoryItems.conf.meta | 17 ++++++++++++++ .../USSR/USSR_InventoryItems.conf | 22 +----------------- 15 files changed, 142 insertions(+), 63 deletions(-) create mode 100644 addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf create mode 100644 addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf create mode 100644 addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf create mode 100644 addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf create mode 100644 addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf new file mode 100644 index 000000000..c547f94f9 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf @@ -0,0 +1,23 @@ +ACE_EntityCatalogMultiListEntry { + m_sIdentifier "ACE" + m_aEntities { + SCR_EntityCatalogInventoryItem "{60FD565F7DFBE6A4}" { + m_sEntityPrefab "{181B4ADA65725D59}Prefabs/Items/Core/ACE_Banana.et" + m_aEntityDataList { + SCR_ArsenalItem "{60FD565F75061ED6}" { + m_eItemType NON_LETHAL_THROWABLE + m_iSupplyCost 0 + } + } + } + SCR_EntityCatalogInventoryItem "{60FD565F20A453B3}" { + m_sEntityPrefab "{9310D03C4A62286F}Prefabs/Weapons/Grenades/ACE_FragBanana.et" + m_aEntityDataList { + SCR_ArsenalItem "{60FD565F5B120DC6}" { + m_eItemType LETHAL_THROWABLE + m_iSupplyCost 3 + } + } + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta b/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta new file mode 100644 index 000000000..28b784c60 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf b/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf new file mode 100644 index 000000000..15e933fcf --- /dev/null +++ b/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf @@ -0,0 +1,2 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta new file mode 100644 index 000000000..fce5d8492 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{95EDA98F741A3B91}Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf b/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf index d631a6652..2fb442e7c 100644 --- a/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf @@ -1,26 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD58703CABF4}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{60FD565F7DFBE6A4}" { - m_sEntityPrefab "{181B4ADA65725D59}Prefabs/Items/Core/ACE_Banana.et" - m_aEntityDataList { - SCR_ArsenalItem "{60FD565F75061ED6}" { - m_eItemType NON_LETHAL_THROWABLE - m_iSupplyCost 0 - } - } - } - SCR_EntityCatalogInventoryItem "{60FD565F20A453B3}" { - m_sEntityPrefab "{9310D03C4A62286F}Prefabs/Weapons/Grenades/ACE_FragBanana.et" - m_aEntityDataList { - SCR_ArsenalItem "{60FD565F5B120DC6}" { - m_eItemType LETHAL_THROWABLE - m_iSupplyCost 3 - } - } - } - } + ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{95EDA98F741A3B91}Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf b/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf new file mode 100644 index 000000000..15e933fcf --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf @@ -0,0 +1,2 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta new file mode 100644 index 000000000..59be24be2 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{E7D9069BE26B7A4C}Configs/EntityCatalog/ACE_UK_InventoryItems.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf new file mode 100644 index 000000000..8a4511173 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf @@ -0,0 +1,6 @@ +SCR_EntityCatalogMultiList { + m_aMultiLists { + ACE_EntityCatalogMultiListEntry "{69D13412A3751197}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf" { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta new file mode 100644 index 000000000..02e380f8e --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{0B5165A21961B72F}Configs/EntityCatalog/UK/UK_InventoryItems.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf b/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf new file mode 100644 index 000000000..15e933fcf --- /dev/null +++ b/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf @@ -0,0 +1,2 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta new file mode 100644 index 000000000..9ff7b4525 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_US_InventoryItems.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf b/addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf index 8435bbfce..665fde624 100644 --- a/addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf @@ -1,26 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5CA0A9E60B892D2A}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{60FD565F7DFBE6A4}" { - m_sEntityPrefab "{181B4ADA65725D59}Prefabs/Items/Core/ACE_Banana.et" - m_aEntityDataList { - SCR_ArsenalItem "{60FD565F75061ED6}" { - m_eItemType NON_LETHAL_THROWABLE - m_iSupplyCost 0 - } - } - } - SCR_EntityCatalogInventoryItem "{60FD565F20A453B3}" { - m_sEntityPrefab "{9310D03C4A62286F}Prefabs/Weapons/Grenades/ACE_FragBanana.et" - m_aEntityDataList { - SCR_ArsenalItem "{60FD565F5B120DC6}" { - m_eItemType LETHAL_THROWABLE - m_iSupplyCost 3 - } - } - } - } + ACE_EntityCatalogMultiListEntry "{69D102AC212B4389}" : "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_US_InventoryItems.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf b/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf new file mode 100644 index 000000000..15e933fcf --- /dev/null +++ b/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf @@ -0,0 +1,2 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta new file mode 100644 index 000000000..3fba1bccb --- /dev/null +++ b/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf b/addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf index 820562a90..d08d249ed 100644 --- a/addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf @@ -1,26 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD5F1351A624}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{60FD565F7DFBE6A4}" { - m_sEntityPrefab "{181B4ADA65725D59}Prefabs/Items/Core/ACE_Banana.et" - m_aEntityDataList { - SCR_ArsenalItem "{60FD565F75061ED6}" { - m_eItemType NON_LETHAL_THROWABLE - m_iSupplyCost 0 - } - } - } - SCR_EntityCatalogInventoryItem "{60FD565F20A453B3}" { - m_sEntityPrefab "{9310D03C4A62286F}Prefabs/Weapons/Grenades/ACE_FragBanana.et" - m_aEntityDataList { - SCR_ArsenalItem "{60FD565F5B120DC6}" { - m_eItemType LETHAL_THROWABLE - m_iSupplyCost 3 - } - } - } - } + ACE_EntityCatalogMultiListEntry "{69D102AC4014161D}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf" { } } } \ No newline at end of file From 8ad2d96fb8ac26c4062007ccd7420e4907a65452 Mon Sep 17 00:00:00 2001 From: Kex Date: Wed, 8 Jul 2026 21:33:31 +0200 Subject: [PATCH 50/62] Move arsenal item lists to ACE configs --- .../EntityCatalog/ACE_InventoryItemsBase.conf | 14 ++++++++++++++ .../ACE_InventoryItemsBase.conf.meta} | 2 +- .../EntityCatalog/FIA/FIA_InventoryItems.conf | 18 ------------------ .../EntityCatalog/US/US_InventoryItems.conf | 18 ------------------ .../USSR/USSR_InventoryItems.conf | 18 ------------------ .../FIA/ACE_FIA_InventoryItems.conf | 13 +++++++++++++ .../FIA/ACE_FIA_InventoryItems.conf.meta | 17 +++++++++++++++++ .../FIA/InventoryItems_EntityCatalog_FIA.conf | 17 ----------------- ...InventoryItems_EntityCatalog_FIA.conf.meta | 19 ------------------- .../UK/ACE_UK_InventoryItems.conf | 13 +++++++++++++ .../UK/ACE_UK_InventoryItems.conf.meta} | 2 +- .../EntityCatalog/UK/UK_InventoryItems.conf | 17 ----------------- .../US/ACE_US_InventoryItems.conf | 13 +++++++++++++ .../US/ACE_US_InventoryItems.conf.meta} | 2 +- .../US/InventoryItems_EntityCatalog_US.conf | 17 ----------------- .../InventoryItems_EntityCatalog_US.conf.meta | 19 ------------------- .../USSR/ACE_USSR_InventoryItems.conf | 13 +++++++++++++ .../USSR/ACE_USSR_InventoryItems.conf.meta | 17 +++++++++++++++++ .../InventoryItems_EntityCatalog_USSR.conf | 17 ----------------- ...nventoryItems_EntityCatalog_USSR.conf.meta | 19 ------------------- .../EntityCatalog/ACE_InventoryItemsBase.conf | 14 ++++++++++++++ .../ACE_InventoryItemsBase.conf.meta} | 2 +- .../FIA/InventoryItems_EntityCatalog_FIA.conf | 18 ------------------ ...InventoryItems_EntityCatalog_FIA.conf.meta | 17 ----------------- .../US/InventoryItems_EntityCatalog_US.conf | 18 ------------------ .../InventoryItems_EntityCatalog_US.conf.meta | 17 ----------------- .../InventoryItems_EntityCatalog_USSR.conf | 18 ------------------ ...nventoryItems_EntityCatalog_USSR.conf.meta | 17 ----------------- .../EntityCatalog/ACE_InventoryItemsBase.conf | 13 +++++++++++++ .../ACE_InventoryItemsBase.conf.meta} | 2 +- .../EntityCatalog/FIA/FIA_InventoryItems.conf | 17 ----------------- .../US/InventoryItems_EntityCatalog_US.conf | 17 ----------------- .../InventoryItems_EntityCatalog_US.conf.meta | 17 ----------------- .../USSR/USSR_InventoryItems.conf | 17 ----------------- .../EntityCatalog/ACE_InventoryItemsBase.conf | 13 +++++++++++++ .../ACE_InventoryItemsBase.conf.meta} | 2 +- .../EntityCatalog/FIA/FIA_InventoryItems.conf | 17 ----------------- .../FIA/FIA_InventoryItems.conf.meta | 17 ----------------- .../US/InventoryItems_EntityCatalog_US.conf | 17 ----------------- .../InventoryItems_EntityCatalog_US.conf.meta | 17 ----------------- .../InventoryItems_EntityCatalog_USSR.conf | 17 ----------------- ...nventoryItems_EntityCatalog_USSR.conf.meta | 17 ----------------- 42 files changed, 146 insertions(+), 460 deletions(-) create mode 100644 addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename addons/{tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta => captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta} (77%) delete mode 100644 addons/captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf delete mode 100644 addons/captives/Configs/EntityCatalog/US/US_InventoryItems.conf delete mode 100644 addons/captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf create mode 100644 addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf create mode 100644 addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta delete mode 100644 addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf delete mode 100644 addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta create mode 100644 addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf rename addons/{captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta => facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta} (81%) delete mode 100644 addons/facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf create mode 100644 addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf rename addons/{tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta => facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta} (81%) delete mode 100644 addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf delete mode 100644 addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta create mode 100644 addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf create mode 100644 addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta delete mode 100644 addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf delete mode 100644 addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta create mode 100644 addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename addons/{captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta => medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta} (77%) delete mode 100644 addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf delete mode 100644 addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta delete mode 100644 addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf delete mode 100644 addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta delete mode 100644 addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf delete mode 100644 addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta create mode 100644 addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename addons/{facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta => tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta} (77%) delete mode 100644 addons/tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf delete mode 100644 addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf delete mode 100644 addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta delete mode 100644 addons/tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf create mode 100644 addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename addons/{captives/Configs/EntityCatalog/US/US_InventoryItems.conf.meta => tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta} (77%) delete mode 100644 addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf delete mode 100644 addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta delete mode 100644 addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf delete mode 100644 addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta delete mode 100644 addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf delete mode 100644 addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta diff --git a/addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf new file mode 100644 index 000000000..1186cc782 --- /dev/null +++ b/addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf @@ -0,0 +1,14 @@ +ACE_EntityCatalogMultiListEntry { + m_aEntities { + SCR_EntityCatalogInventoryItem "{64FC20C065CA64F5}" { + m_sEntityPrefab "{CBF9B9942E07B6B8}Prefabs/Items/Equipment/Accessories/ZipCuffs/ACE_Captives_ZipCuffs.et" + m_aEntityDataList { + SCR_ArsenalItem "{64FC20C19D482C89}" { + m_eItemType EQUIPMENT + m_eItemMode CONSUMABLE + m_iSupplyCost 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta b/addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta similarity index 77% rename from addons/tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta rename to addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta index ca1cb77ce..28b784c60 100644 --- a/addons/tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta +++ b/addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{E908001749419691}Configs/EntityCatalog/FIA/FIA_InventoryItems.conf" + Name "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf b/addons/captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf deleted file mode 100644 index ac6929e87..000000000 --- a/addons/captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf +++ /dev/null @@ -1,18 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C630E453BCB39DC}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{64FC20C065CA64F5}" { - m_sEntityPrefab "{CBF9B9942E07B6B8}Prefabs/Items/Equipment/Accessories/ZipCuffs/ACE_Captives_ZipCuffs.et" - m_aEntityDataList { - SCR_ArsenalItem "{64FC20C19D482C89}" { - m_eItemType EQUIPMENT - m_eItemMode CONSUMABLE - m_iSupplyCost 0 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/captives/Configs/EntityCatalog/US/US_InventoryItems.conf b/addons/captives/Configs/EntityCatalog/US/US_InventoryItems.conf deleted file mode 100644 index 18144b2d1..000000000 --- a/addons/captives/Configs/EntityCatalog/US/US_InventoryItems.conf +++ /dev/null @@ -1,18 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{64FC20C065CA64F5}" { - m_sEntityPrefab "{CBF9B9942E07B6B8}Prefabs/Items/Equipment/Accessories/ZipCuffs/ACE_Captives_ZipCuffs.et" - m_aEntityDataList { - SCR_ArsenalItem "{64FC20C19D482C89}" { - m_eItemType EQUIPMENT - m_eItemMode CONSUMABLE - m_iSupplyCost 0 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf b/addons/captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf deleted file mode 100644 index bcb41f324..000000000 --- a/addons/captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf +++ /dev/null @@ -1,18 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{64FC20C065CA64F5}" { - m_sEntityPrefab "{CBF9B9942E07B6B8}Prefabs/Items/Equipment/Accessories/ZipCuffs/ACE_Captives_ZipCuffs.et" - m_aEntityDataList { - SCR_ArsenalItem "{64FC20C19D482C89}" { - m_eItemType EQUIPMENT - m_eItemMode CONSUMABLE - m_iSupplyCost 0 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf new file mode 100644 index 000000000..2dbdd1752 --- /dev/null +++ b/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf @@ -0,0 +1,13 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{65270736038395D9}" { + m_sEntityPrefab "{28FA34E692783ACB}Prefabs/Items/ACE_Facepaint_01_USSR.et" + m_aEntityDataList { + SCR_ArsenalItem "{62F30440549B386D}" { + m_eItemType EQUIPMENT + m_iSupplyCost 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta new file mode 100644 index 000000000..fce5d8492 --- /dev/null +++ b/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{95EDA98F741A3B91}Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf b/addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf deleted file mode 100644 index b919c388e..000000000 --- a/addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C630E453BCB39DC}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{65270736038395D9}" { - m_sEntityPrefab "{28FA34E692783ACB}Prefabs/Items/ACE_Facepaint_01_USSR.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 0 - } - } - } - } - } - } -} diff --git a/addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta b/addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta deleted file mode 100644 index 7d8f7d436..000000000 --- a/addons/facepaint/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta +++ /dev/null @@ -1,19 +0,0 @@ -MetaFileClass { - Name "{E908001749419691}Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - CONFResourceClass Xbox : PC { - } - } -} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf new file mode 100644 index 000000000..5bb088add --- /dev/null +++ b/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf @@ -0,0 +1,13 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{68EB10F5497121E7}" { + m_sEntityPrefab "{1642314A5C9B5C13}Prefabs/Items/ACE_Facepaint_01_UK.et" + m_aEntityDataList { + SCR_ArsenalItem "{62F30440549B386D}" { + m_eItemType EQUIPMENT + m_iSupplyCost 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta similarity index 81% rename from addons/captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta rename to addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta index e300bbe36..26fdded58 100644 --- a/addons/captives/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta +++ b/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/USSR_InventoryItems.conf" + Name "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf deleted file mode 100644 index 25783af62..000000000 --- a/addons/facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{62DD3B2896AEA994}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{68EB10F5497121E7}" { - m_sEntityPrefab "{1642314A5C9B5C13}Prefabs/Items/ACE_Facepaint_01_UK.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 0 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf new file mode 100644 index 000000000..e7c5495fc --- /dev/null +++ b/addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf @@ -0,0 +1,13 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{65270736F5B33C47}" { + m_sEntityPrefab "{B3F2B47340817ED6}Prefabs/Items/ACE_Facepaint_01_US.et" + m_aEntityDataList { + SCR_ArsenalItem "{62F30440549B386D}" { + m_eItemType EQUIPMENT + m_iSupplyCost 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta similarity index 81% rename from addons/tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta rename to addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta index e300bbe36..9ff7b4525 100644 --- a/addons/tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta +++ b/addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/USSR_InventoryItems.conf" + Name "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_US_InventoryItems.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf deleted file mode 100644 index 03b82074f..000000000 --- a/addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{65270736F5B33C47}" { - m_sEntityPrefab "{B3F2B47340817ED6}Prefabs/Items/ACE_Facepaint_01_US.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 0 - } - } - } - } - } - } -} diff --git a/addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta b/addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta deleted file mode 100644 index 7c752023a..000000000 --- a/addons/facepaint/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta +++ /dev/null @@ -1,19 +0,0 @@ -MetaFileClass { - Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - CONFResourceClass Xbox : PC { - } - } -} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf new file mode 100644 index 000000000..b7c810ee7 --- /dev/null +++ b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf @@ -0,0 +1,13 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{65270736CC1B1935}" { + m_sEntityPrefab "{28FA34E692783ACB}Prefabs/Items/ACE_Facepaint_01_USSR.et" + m_aEntityDataList { + SCR_ArsenalItem "{62F30440549B386D}" { + m_eItemType EQUIPMENT + m_iSupplyCost 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta new file mode 100644 index 000000000..3fba1bccb --- /dev/null +++ b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf deleted file mode 100644 index a75392eb4..000000000 --- a/addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{65270736CC1B1935}" { - m_sEntityPrefab "{28FA34E692783ACB}Prefabs/Items/ACE_Facepaint_01_USSR.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 0 - } - } - } - } - } - } -} diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta b/addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta deleted file mode 100644 index b243b658d..000000000 --- a/addons/facepaint/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta +++ /dev/null @@ -1,19 +0,0 @@ -MetaFileClass { - Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - CONFResourceClass Xbox : PC { - } - } -} \ No newline at end of file diff --git a/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf new file mode 100644 index 000000000..538bb80ab --- /dev/null +++ b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf @@ -0,0 +1,14 @@ +ACE_EntityCatalogMultiListEntry { + m_aEntities { + SCR_EntityCatalogInventoryItem "{5E110E1DDFEFF41F}" { + m_sEntityPrefab "{5B2FD067D70C1E8F}Prefabs/Items/Medicine/EpinephrineInjection/ACE_Medical_EpinephrineInjection.et" + m_aEntityDataList { + SCR_ArsenalItem "{5E110E1D8B6C3689}" { + m_eItemType HEAL + m_eItemMode CONSUMABLE + m_iSupplyCost 3 + } + } + } + } +} \ No newline at end of file diff --git a/addons/captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta similarity index 77% rename from addons/captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta rename to addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta index ca1cb77ce..28b784c60 100644 --- a/addons/captives/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta +++ b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{E908001749419691}Configs/EntityCatalog/FIA/FIA_InventoryItems.conf" + Name "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf b/addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf deleted file mode 100644 index 0e417e519..000000000 --- a/addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf +++ /dev/null @@ -1,18 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C630E453BCB39DC}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{5E110E1E69A89740}" { - m_sEntityPrefab "{5B2FD067D70C1E8F}Prefabs/Items/Medicine/EpinephrineInjection/ACE_Medical_EpinephrineInjection.et" - m_aEntityDataList { - SCR_ArsenalItem "{5E110E1D8B6C3689}" { - m_eItemType HEAL - m_eItemMode CONSUMABLE - m_iSupplyCost 3 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta b/addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta deleted file mode 100644 index 49381bb91..000000000 --- a/addons/medical_core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{E908001749419691}Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass HEADLESS : PC { - } - CONFResourceClass PS5 : PC { - } - } -} \ No newline at end of file diff --git a/addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf deleted file mode 100644 index 47ab0fd2a..000000000 --- a/addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ /dev/null @@ -1,18 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{5E110E1DC68C3537}" { - m_sEntityPrefab "{5B2FD067D70C1E8F}Prefabs/Items/Medicine/EpinephrineInjection/ACE_Medical_EpinephrineInjection.et" - m_aEntityDataList { - SCR_ArsenalItem "{5E110E1D8B6C3689}" { - m_eItemType HEAL - m_eItemMode CONSUMABLE - m_iSupplyCost 3 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta b/addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta deleted file mode 100644 index e60da21c0..000000000 --- a/addons/medical_core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass HEADLESS : PC { - } - CONFResourceClass PS5 : PC { - } - } -} \ No newline at end of file diff --git a/addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf deleted file mode 100644 index 6d5868fcc..000000000 --- a/addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ /dev/null @@ -1,18 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{5E110E1DDFEFF41F}" { - m_sEntityPrefab "{5B2FD067D70C1E8F}Prefabs/Items/Medicine/EpinephrineInjection/ACE_Medical_EpinephrineInjection.et" - m_aEntityDataList { - SCR_ArsenalItem "{5E110E1D8B6C3689}" { - m_eItemType HEAL - m_eItemMode CONSUMABLE - m_iSupplyCost 3 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta b/addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta deleted file mode 100644 index ec038fee9..000000000 --- a/addons/medical_core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass HEADLESS : PC { - } - CONFResourceClass PS5 : PC { - } - } -} \ No newline at end of file diff --git a/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf new file mode 100644 index 000000000..f3b8d6f39 --- /dev/null +++ b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf @@ -0,0 +1,13 @@ +ACE_EntityCatalogMultiListEntry { + m_aEntities { + SCR_EntityCatalogInventoryItem "{62F93B32BC86C49C}" { + m_sEntityPrefab "{62F304402A707F68}Prefabs/Items/Equipment/TacticalLadder/ACE_TacticalLadder.et" + m_aEntityDataList { + SCR_ArsenalItem "{62F30440549B386D}" { + m_eItemType EQUIPMENT + m_iSupplyCost 30 + } + } + } + } +} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta similarity index 77% rename from addons/facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta rename to addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta index 02e380f8e..28b784c60 100644 --- a/addons/facepaint/Configs/EntityCatalog/UK/UK_InventoryItems.conf.meta +++ b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{0B5165A21961B72F}Configs/EntityCatalog/UK/UK_InventoryItems.conf" + Name "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf b/addons/tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf deleted file mode 100644 index e780f238a..000000000 --- a/addons/tactical_ladder/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C630E453BCB39DC}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{62F93B316FA2BAD0}" { - m_sEntityPrefab "{62F304402A707F68}Prefabs/Items/Equipment/TacticalLadder/ACE_TacticalLadder.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 30 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf deleted file mode 100644 index c1ba01f3d..000000000 --- a/addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{62F304402A707F68}" { - m_sEntityPrefab "{62F304402A707F68}Prefabs/Items/Equipment/TacticalLadder/ACE_TacticalLadder.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 30 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta b/addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta deleted file mode 100644 index 185e41b20..000000000 --- a/addons/tactical_ladder/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file diff --git a/addons/tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf b/addons/tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf deleted file mode 100644 index 01388cc24..000000000 --- a/addons/tactical_ladder/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{62F93B32BC86C49C}" { - m_sEntityPrefab "{62F304402A707F68}Prefabs/Items/Equipment/TacticalLadder/ACE_TacticalLadder.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 30 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf new file mode 100644 index 000000000..61b093fcd --- /dev/null +++ b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf @@ -0,0 +1,13 @@ +ACE_EntityCatalogMultiListEntry { + m_aEntities { + SCR_EntityCatalogInventoryItem "{64A4F8C560780ED7}" { + m_sEntityPrefab "{452112928EC197AD}Prefabs/Items/Equipment/Periscope/ACE_TacticalPeriscope.et" + m_aEntityDataList { + SCR_ArsenalItem "{64A4F8C50A157DCF}" { + m_eItemType EQUIPMENT + m_iSupplyCost 15 + } + } + } + } +} \ No newline at end of file diff --git a/addons/captives/Configs/EntityCatalog/US/US_InventoryItems.conf.meta b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta similarity index 77% rename from addons/captives/Configs/EntityCatalog/US/US_InventoryItems.conf.meta rename to addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta index f496e754c..28b784c60 100644 --- a/addons/captives/Configs/EntityCatalog/US/US_InventoryItems.conf.meta +++ b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/US_InventoryItems.conf" + Name "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf b/addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf deleted file mode 100644 index 11dab6311..000000000 --- a/addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C630E453BCB39DC}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{64A4F8C577C079CA}" { - m_sEntityPrefab "{452112928EC197AD}Prefabs/Items/Equipment/Periscope/ACE_TacticalPeriscope.et" - m_aEntityDataList { - SCR_ArsenalItem "{64A4F8C50A157DCF}" { - m_eItemType EQUIPMENT - m_iSupplyCost 15 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta b/addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta deleted file mode 100644 index ca1cb77ce..000000000 --- a/addons/tactical_periscope/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{E908001749419691}Configs/EntityCatalog/FIA/FIA_InventoryItems.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file diff --git a/addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf deleted file mode 100644 index 01523e1f4..000000000 --- a/addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{64A4F8C5108615E4}" { - m_sEntityPrefab "{452112928EC197AD}Prefabs/Items/Equipment/Periscope/ACE_TacticalPeriscope.et" - m_aEntityDataList { - SCR_ArsenalItem "{64A4F8C50A157DCF}" { - m_eItemType EQUIPMENT - m_iSupplyCost 15 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta b/addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta deleted file mode 100644 index 185e41b20..000000000 --- a/addons/tactical_periscope/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file diff --git a/addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf deleted file mode 100644 index bcdb0a0a7..000000000 --- a/addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{64A4F8C560780ED7}" { - m_sEntityPrefab "{452112928EC197AD}Prefabs/Items/Equipment/Periscope/ACE_TacticalPeriscope.et" - m_aEntityDataList { - SCR_ArsenalItem "{64A4F8C50A157DCF}" { - m_eItemType EQUIPMENT - m_iSupplyCost 15 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta b/addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta deleted file mode 100644 index 44514319b..000000000 --- a/addons/tactical_periscope/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file From 1151edebed12ed0158a6b5d3f83791aebffc5883 Mon Sep 17 00:00:00 2001 From: Kex Date: Wed, 8 Jul 2026 21:46:44 +0200 Subject: [PATCH 51/62] Use USSR config for FIA --- .../FIA/ACE_FIA_InventoryItems.conf | 2 -- .../FIA/ACE_FIA_InventoryItems.conf.meta | 17 ----------------- .../EntityCatalog/FIA/FIA_InventoryItems.conf | 2 +- .../FIA/ACE_FIA_InventoryItems.conf | 13 ------------- .../FIA/ACE_FIA_InventoryItems.conf.meta | 17 ----------------- 5 files changed, 1 insertion(+), 50 deletions(-) delete mode 100644 addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf delete mode 100644 addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta delete mode 100644 addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf delete mode 100644 addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta diff --git a/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf b/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf deleted file mode 100644 index 15e933fcf..000000000 --- a/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf +++ /dev/null @@ -1,2 +0,0 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { -} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta deleted file mode 100644 index fce5d8492..000000000 --- a/addons/core/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{95EDA98F741A3B91}Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf b/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf index 2fb442e7c..16116fa39 100644 --- a/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf @@ -1,6 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{95EDA98F741A3B91}Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf" { + ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf" { } } } \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf deleted file mode 100644 index 2dbdd1752..000000000 --- a/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf +++ /dev/null @@ -1,13 +0,0 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{65270736038395D9}" { - m_sEntityPrefab "{28FA34E692783ACB}Prefabs/Items/ACE_Facepaint_01_USSR.et" - m_aEntityDataList { - SCR_ArsenalItem "{62F30440549B386D}" { - m_eItemType EQUIPMENT - m_iSupplyCost 0 - } - } - } - } -} \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta deleted file mode 100644 index fce5d8492..000000000 --- a/addons/facepaint/Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf.meta +++ /dev/null @@ -1,17 +0,0 @@ -MetaFileClass { - Name "{95EDA98F741A3B91}Configs/EntityCatalog/FIA/ACE_FIA_InventoryItems.conf" - Configurations { - CONFResourceClass PC { - } - CONFResourceClass XBOX_ONE : PC { - } - CONFResourceClass XBOX_SERIES : PC { - } - CONFResourceClass PS4 : PC { - } - CONFResourceClass PS5 : PC { - } - CONFResourceClass HEADLESS : PC { - } - } -} \ No newline at end of file From ed65efbc4619b7a043d46108bc31aa9b50e848d7 Mon Sep 17 00:00:00 2001 From: Kex Date: Wed, 8 Jul 2026 22:40:47 +0200 Subject: [PATCH 52/62] Update to new naming convention --- ...temsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} | 0 ...onf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} | 0 ...temsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} | 0 ...onf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} | 0 ...nventoryItems.conf => InventoryItems_EntityCatalog_FIA.conf} | 2 +- ...ems.conf.meta => InventoryItems_EntityCatalog_FIA.conf.meta} | 0 ...ntoryItems.conf => ACE_InventoryItems_EntityCatalog_US.conf} | 2 +- ....conf.meta => ACE_InventoryItems_EntityCatalog_US.conf.meta} | 0 ...InventoryItems.conf => InventoryItems_EntityCatalog_US.conf} | 2 +- ...tems.conf.meta => InventoryItems_EntityCatalog_US.conf.meta} | 0 ...oryItems.conf => ACE_InventoryItems_EntityCatalog_USSR.conf} | 2 +- ...onf.meta => ACE_InventoryItems_EntityCatalog_USSR.conf.meta} | 0 ...ventoryItems.conf => InventoryItems_EntityCatalog_USSR.conf} | 2 +- ...ms.conf.meta => InventoryItems_EntityCatalog_USSR.conf.meta} | 0 ...ntoryItems.conf => ACE_InventoryItems_EntityCatalog_US.conf} | 0 ....conf.meta => ACE_InventoryItems_EntityCatalog_US.conf.meta} | 0 ...oryItems.conf => ACE_InventoryItems_EntityCatalog_USSR.conf} | 0 ...onf.meta => ACE_InventoryItems_EntityCatalog_USSR.conf.meta} | 0 ...temsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} | 0 ...onf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} | 0 ...temsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} | 0 ...onf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} | 0 ...temsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} | 0 ...onf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} | 0 24 files changed, 5 insertions(+), 5 deletions(-) rename addons/captives/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} (100%) rename addons/captives/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} (100%) rename addons/core/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/FIA/{FIA_InventoryItems.conf => InventoryItems_EntityCatalog_FIA.conf} (58%) rename addons/core/Configs/EntityCatalog/FIA/{FIA_InventoryItems.conf.meta => InventoryItems_EntityCatalog_FIA.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/US/{ACE_US_InventoryItems.conf => ACE_InventoryItems_EntityCatalog_US.conf} (53%) rename addons/core/Configs/EntityCatalog/US/{ACE_US_InventoryItems.conf.meta => ACE_InventoryItems_EntityCatalog_US.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/US/{US_InventoryItems.conf => InventoryItems_EntityCatalog_US.conf} (59%) rename addons/core/Configs/EntityCatalog/US/{US_InventoryItems.conf.meta => InventoryItems_EntityCatalog_US.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/USSR/{ACE_USSR_InventoryItems.conf => ACE_InventoryItems_EntityCatalog_USSR.conf} (53%) rename addons/core/Configs/EntityCatalog/USSR/{ACE_USSR_InventoryItems.conf.meta => ACE_InventoryItems_EntityCatalog_USSR.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/USSR/{USSR_InventoryItems.conf => InventoryItems_EntityCatalog_USSR.conf} (58%) rename addons/core/Configs/EntityCatalog/USSR/{USSR_InventoryItems.conf.meta => InventoryItems_EntityCatalog_USSR.conf.meta} (100%) rename addons/facepaint/Configs/EntityCatalog/US/{ACE_US_InventoryItems.conf => ACE_InventoryItems_EntityCatalog_US.conf} (100%) rename addons/facepaint/Configs/EntityCatalog/US/{ACE_US_InventoryItems.conf.meta => ACE_InventoryItems_EntityCatalog_US.conf.meta} (100%) rename addons/facepaint/Configs/EntityCatalog/USSR/{ACE_USSR_InventoryItems.conf => ACE_InventoryItems_EntityCatalog_USSR.conf} (100%) rename addons/facepaint/Configs/EntityCatalog/USSR/{ACE_USSR_InventoryItems.conf.meta => ACE_InventoryItems_EntityCatalog_USSR.conf.meta} (100%) rename addons/medical_core/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} (100%) rename addons/medical_core/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} (100%) rename addons/tactical_ladder/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} (100%) rename addons/tactical_ladder/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} (100%) rename addons/tactical_periscope/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf => ACE_InventoryItems_EntityCatalog_Base.conf} (100%) rename addons/tactical_periscope/Configs/EntityCatalog/{ACE_InventoryItemsBase.conf.meta => ACE_InventoryItems_EntityCatalog_Base.conf.meta} (100%) diff --git a/addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf similarity index 100% rename from addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename to addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf diff --git a/addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta b/addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta similarity index 100% rename from addons/captives/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta rename to addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf similarity index 100% rename from addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename to addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta rename to addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta diff --git a/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf b/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf similarity index 58% rename from addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf rename to addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf index 16116fa39..85d318778 100644 --- a/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf @@ -1,6 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf" { + ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/FIA/FIA_InventoryItems.conf.meta rename to addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf.meta diff --git a/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf b/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf similarity index 53% rename from addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf rename to addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf index 15e933fcf..22286ecd0 100644 --- a/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf @@ -1,2 +1,2 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf" { } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta rename to addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta diff --git a/addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf b/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf similarity index 59% rename from addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf rename to addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf index 665fde624..62ba51b37 100644 --- a/addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf @@ -1,6 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D102AC212B4389}" : "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_US_InventoryItems.conf" { + ACE_EntityCatalogMultiListEntry "{69D102AC212B4389}" : "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/US/US_InventoryItems.conf.meta rename to addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta diff --git a/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf b/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf similarity index 53% rename from addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf rename to addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf index 15e933fcf..22286ecd0 100644 --- a/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf @@ -1,2 +1,2 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf" { } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta rename to addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta diff --git a/addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf b/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf similarity index 58% rename from addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf rename to addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf index d08d249ed..5bb7465c6 100644 --- a/addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf @@ -1,6 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D102AC4014161D}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf" { + ACE_EntityCatalogMultiListEntry "{69D102AC4014161D}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/USSR/USSR_InventoryItems.conf.meta rename to addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta diff --git a/addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf similarity index 100% rename from addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf rename to addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf diff --git a/addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta similarity index 100% rename from addons/facepaint/Configs/EntityCatalog/US/ACE_US_InventoryItems.conf.meta rename to addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf similarity index 100% rename from addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf rename to addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta similarity index 100% rename from addons/facepaint/Configs/EntityCatalog/USSR/ACE_USSR_InventoryItems.conf.meta rename to addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta diff --git a/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf similarity index 100% rename from addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename to addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf diff --git a/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta similarity index 100% rename from addons/medical_core/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta rename to addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta diff --git a/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf similarity index 100% rename from addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename to addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf diff --git a/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta similarity index 100% rename from addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta rename to addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta diff --git a/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf similarity index 100% rename from addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf rename to addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf diff --git a/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta similarity index 100% rename from addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItemsBase.conf.meta rename to addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta From 4c441eb915daac71e0dc27e299ca31dac8dbc4f0 Mon Sep 17 00:00:00 2001 From: Kex Date: Wed, 8 Jul 2026 22:51:16 +0200 Subject: [PATCH 53/62] Update to new naming convention --- ...ntoryItems.conf => ACE_InventoryItems_EntityCatalog_UK.conf} | 2 +- ....conf.meta => ACE_InventoryItems_EntityCatalog_UK.conf.meta} | 0 addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename addons/core/Configs/EntityCatalog/UK/{ACE_UK_InventoryItems.conf => ACE_InventoryItems_EntityCatalog_UK.conf} (53%) rename addons/core/Configs/EntityCatalog/UK/{ACE_UK_InventoryItems.conf.meta => ACE_InventoryItems_EntityCatalog_UK.conf.meta} (100%) diff --git a/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf b/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf similarity index 53% rename from addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf rename to addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf index 15e933fcf..22286ecd0 100644 --- a/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf @@ -1,2 +1,2 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf" { } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta b/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta rename to addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf.meta diff --git a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf index 8a4511173..ac3952d11 100644 --- a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf @@ -1,6 +1,6 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D13412A3751197}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf" { + ACE_EntityCatalogMultiListEntry "{69D13412A3751197}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf" { } } } \ No newline at end of file From 015d0522b41f9ca4a33801c1efd0ac69bf60068d Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 03:31:29 +0200 Subject: [PATCH 54/62] Split equipment and medical configs --- ...InventoryItems_EntityCatalog_Equipment.conf} | 0 ...toryItems_EntityCatalog_Equipment.conf.meta} | 0 ...InventoryItems_EntityCatalog_Equipment.conf} | 2 +- ...toryItems_EntityCatalog_Equipment.conf.meta} | 0 ...CE_InventoryItems_EntityCatalog_Medical.conf | 3 +++ ...entoryItems_EntityCatalog_Medical.conf.meta} | 2 +- .../FIA/InventoryItems_EntityCatalog_FIA.conf | 4 +++- ...entoryItems_EntityCatalog_Equipment_UK.conf} | 2 +- ...yItems_EntityCatalog_Equipment_UK.conf.meta} | 0 .../EntityCatalog/UK/UK_InventoryItems.conf | 4 +++- ...entoryItems_EntityCatalog_Equipment_US.conf} | 2 +- ...yItems_EntityCatalog_Equipment_US.conf.meta} | 0 .../US/InventoryItems_EntityCatalog_US.conf | 4 +++- ...toryItems_EntityCatalog_Equipment_USSR.conf} | 2 +- ...tems_EntityCatalog_Equipment_USSR.conf.meta} | 0 .../USSR/InventoryItems_EntityCatalog_USSR.conf | 4 +++- ...entoryItems_EntityCatalog_Equipment_UK.conf} | 2 +- ...yItems_EntityCatalog_Equipment_UK.conf.meta} | 0 ...entoryItems_EntityCatalog_Equipment_US.conf} | 2 +- ...yItems_EntityCatalog_Equipment_US.conf.meta} | 0 ...toryItems_EntityCatalog_Equipment_USSR.conf} | 2 +- ...tems_EntityCatalog_Equipment_USSR.conf.meta} | 0 ...E_InventoryItems_EntityCatalog_Medical.conf} | 0 ...ventoryItems_EntityCatalog_Medical.conf.meta | 17 +++++++++++++++++ ...InventoryItems_EntityCatalog_Equipment.conf} | 0 ...toryItems_EntityCatalog_Equipment.conf.meta} | 0 ...InventoryItems_EntityCatalog_Equipment.conf} | 0 ...toryItems_EntityCatalog_Equipment.conf.meta} | 0 28 files changed, 40 insertions(+), 12 deletions(-) rename addons/captives/Configs/EntityCatalog/{ACE_InventoryItems_EntityCatalog_Base.conf => ACE_InventoryItems_EntityCatalog_Equipment.conf} (100%) rename addons/captives/Configs/EntityCatalog/{ACE_InventoryItems_EntityCatalog_Base.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/{ACE_InventoryItems_EntityCatalog_Base.conf => ACE_InventoryItems_EntityCatalog_Equipment.conf} (95%) rename addons/core/Configs/EntityCatalog/{ACE_InventoryItems_EntityCatalog_Base.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment.conf.meta} (100%) create mode 100644 addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf rename addons/{tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta => core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta} (73%) rename addons/core/Configs/EntityCatalog/UK/{ACE_InventoryItems_EntityCatalog_UK.conf => ACE_InventoryItems_EntityCatalog_Equipment_UK.conf} (51%) rename addons/core/Configs/EntityCatalog/UK/{ACE_InventoryItems_EntityCatalog_UK.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_UK.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/US/{ACE_InventoryItems_EntityCatalog_US.conf => ACE_InventoryItems_EntityCatalog_Equipment_US.conf} (51%) rename addons/core/Configs/EntityCatalog/US/{ACE_InventoryItems_EntityCatalog_US.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta} (100%) rename addons/core/Configs/EntityCatalog/USSR/{ACE_InventoryItems_EntityCatalog_USSR.conf => ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf} (51%) rename addons/core/Configs/EntityCatalog/USSR/{ACE_InventoryItems_EntityCatalog_USSR.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta} (100%) rename addons/facepaint/Configs/EntityCatalog/UK/{ACE_UK_InventoryItems.conf => ACE_InventoryItems_EntityCatalog_Equipment_UK.conf} (84%) rename addons/facepaint/Configs/EntityCatalog/UK/{ACE_UK_InventoryItems.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_UK.conf.meta} (100%) rename addons/facepaint/Configs/EntityCatalog/US/{ACE_InventoryItems_EntityCatalog_US.conf => ACE_InventoryItems_EntityCatalog_Equipment_US.conf} (84%) rename addons/facepaint/Configs/EntityCatalog/US/{ACE_InventoryItems_EntityCatalog_US.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta} (100%) rename addons/facepaint/Configs/EntityCatalog/USSR/{ACE_InventoryItems_EntityCatalog_USSR.conf => ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf} (84%) rename addons/facepaint/Configs/EntityCatalog/USSR/{ACE_InventoryItems_EntityCatalog_USSR.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta} (100%) rename addons/medical_core/Configs/EntityCatalog/{ACE_InventoryItems_EntityCatalog_Base.conf => ACE_InventoryItems_EntityCatalog_Medical.conf} (100%) create mode 100644 addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta rename addons/tactical_ladder/Configs/EntityCatalog/{ACE_InventoryItems_EntityCatalog_Base.conf => ACE_InventoryItems_EntityCatalog_Equipment.conf} (100%) rename addons/{medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta => tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta} (100%) rename addons/tactical_periscope/Configs/EntityCatalog/{ACE_InventoryItems_EntityCatalog_Base.conf => ACE_InventoryItems_EntityCatalog_Equipment.conf} (100%) rename addons/{tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta => tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta} (100%) diff --git a/addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf b/addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf similarity index 100% rename from addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf rename to addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf diff --git a/addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta b/addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta similarity index 100% rename from addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta rename to addons/captives/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf similarity index 95% rename from addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf rename to addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf index c547f94f9..0cd2d47a3 100644 --- a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf @@ -1,5 +1,5 @@ ACE_EntityCatalogMultiListEntry { - m_sIdentifier "ACE" + m_sIdentifier "ACE Equipment" m_aEntities { SCR_EntityCatalogInventoryItem "{60FD565F7DFBE6A4}" { m_sEntityPrefab "{181B4ADA65725D59}Prefabs/Items/Core/ACE_Banana.et" diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta rename to addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf new file mode 100644 index 000000000..b4cc85c51 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf @@ -0,0 +1,3 @@ +ACE_EntityCatalogMultiListEntry { + m_sIdentifier "ACE Medical" +} \ No newline at end of file diff --git a/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta similarity index 73% rename from addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta rename to addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta index 28b784c60..a7d63222d 100644 --- a/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" + Name "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf b/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf index 85d318778..39a590331 100644 --- a/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf +++ b/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf @@ -1,6 +1,8 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf" { + ACE_EntityCatalogMultiListEntry "{69D210804C2BFE9E}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { + } + ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf b/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf similarity index 51% rename from addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf rename to addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf index 22286ecd0..c41933b32 100644 --- a/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf +++ b/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf @@ -1,2 +1,2 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf.meta b/addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf.meta rename to addons/core/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf.meta diff --git a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf index ac3952d11..f74059f39 100644 --- a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf @@ -1,6 +1,8 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D13412A3751197}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_UK.conf" { + ACE_EntityCatalogMultiListEntry "{69D13412A3751197}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { + } + ACE_EntityCatalogMultiListEntry "{69D210807813C38A}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf b/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf similarity index 51% rename from addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf rename to addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf index 22286ecd0..c41933b32 100644 --- a/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf +++ b/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf @@ -1,2 +1,2 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta b/addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta rename to addons/core/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta diff --git a/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf index 62ba51b37..d8a405221 100644 --- a/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ b/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf @@ -1,6 +1,8 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D102AC212B4389}" : "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf" { + ACE_EntityCatalogMultiListEntry "{69D102AC212B4389}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { + } + ACE_EntityCatalogMultiListEntry "{69D2108069E4B053}" : "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf" { } } } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf b/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf similarity index 51% rename from addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf rename to addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf index 22286ecd0..c41933b32 100644 --- a/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf +++ b/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf @@ -1,2 +1,2 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta b/addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta similarity index 100% rename from addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta rename to addons/core/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta diff --git a/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf index 5bb7465c6..e26d17fb1 100644 --- a/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ b/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf @@ -1,6 +1,8 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - ACE_EntityCatalogMultiListEntry "{69D102AC4014161D}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf" { + ACE_EntityCatalogMultiListEntry "{69D102AC4014161D}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { + } + ACE_EntityCatalogMultiListEntry "{69D2108063218CBD}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf" { } } } \ No newline at end of file diff --git a/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf b/addons/facepaint/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf similarity index 84% rename from addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf rename to addons/facepaint/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf index 5bb088add..fb372e95f 100644 --- a/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf +++ b/addons/facepaint/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf @@ -1,4 +1,4 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { m_aEntities { SCR_EntityCatalogInventoryItem "{68EB10F5497121E7}" { m_sEntityPrefab "{1642314A5C9B5C13}Prefabs/Items/ACE_Facepaint_01_UK.et" diff --git a/addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta b/addons/facepaint/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf.meta similarity index 100% rename from addons/facepaint/Configs/EntityCatalog/UK/ACE_UK_InventoryItems.conf.meta rename to addons/facepaint/Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf.meta diff --git a/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf b/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf similarity index 84% rename from addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf rename to addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf index e7c5495fc..5cadcecdf 100644 --- a/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf +++ b/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf @@ -1,4 +1,4 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { m_aEntities { SCR_EntityCatalogInventoryItem "{65270736F5B33C47}" { m_sEntityPrefab "{B3F2B47340817ED6}Prefabs/Items/ACE_Facepaint_01_US.et" diff --git a/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta b/addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta similarity index 100% rename from addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_US.conf.meta rename to addons/facepaint/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf similarity index 84% rename from addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf rename to addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf index b7c810ee7..37f2d931c 100644 --- a/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf +++ b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf @@ -1,4 +1,4 @@ -ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItemsBase.conf" { +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { m_aEntities { SCR_EntityCatalogInventoryItem "{65270736CC1B1935}" { m_sEntityPrefab "{28FA34E692783ACB}Prefabs/Items/ACE_Facepaint_01_USSR.et" diff --git a/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta b/addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta similarity index 100% rename from addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_USSR.conf.meta rename to addons/facepaint/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta diff --git a/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf similarity index 100% rename from addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf rename to addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf diff --git a/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta new file mode 100644 index 000000000..a7d63222d --- /dev/null +++ b/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf similarity index 100% rename from addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf rename to addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf diff --git a/addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta b/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta similarity index 100% rename from addons/medical_core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta rename to addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta diff --git a/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf similarity index 100% rename from addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf rename to addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf diff --git a/addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta b/addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta similarity index 100% rename from addons/tactical_ladder/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Base.conf.meta rename to addons/tactical_periscope/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf.meta From 83e4cb54c86d5856eb6ec1b5bcae20d398654c8a Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 04:58:00 +0200 Subject: [PATCH 55/62] Add sorting priority to SCR_EntityCatalogMultiList --- .../EntityCatalog/SCR_EntityCatalogMultiList.c | 11 +++++++++++ .../EntityCatalog/SCR_EntityCatalogMultiListEntry.c | 7 +++++++ 2 files changed, 18 insertions(+) create mode 100644 addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c create mode 100644 addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c diff --git a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c new file mode 100644 index 000000000..c9b69bea3 --- /dev/null +++ b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c @@ -0,0 +1,11 @@ +//------------------------------------------------------------------------------------------------ +[BaseContainerProps(configRoot: true), SCR_BaseContainerCustomEntityCatalogCatalog(EEntityCatalogType, "m_eEntityCatalogType", "m_aEntityEntryList", "m_aMultiLists")] +modded class SCR_EntityCatalogMultiList: SCR_EntityCatalog +{ + //------------------------------------------------------------------------------------------------ + protected override void InitCatalog() + { + m_aMultiLists.Sort(); + super.InitCatalog(); + } +} diff --git a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c new file mode 100644 index 000000000..488abd66c --- /dev/null +++ b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c @@ -0,0 +1,7 @@ +//------------------------------------------------------------------------------------------------ +[BaseContainerProps(), SCR_BaseContainerCustomEntityCatalogMultiListEntry("m_sIdentifier", "m_aEntities")] +modded class SCR_EntityCatalogMultiListEntry +{ + [SortAttribute(), Attribute(desc: "Sort priority of the entry. Lower value means higher priority.")] + protected int m_iACE_Priority; +} From 3bc2a83fd89ffd3e0eb07e4562effbfa07e71788 Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 05:00:11 +0200 Subject: [PATCH 56/62] Set priorities --- ...nventoryItems_EntityCatalog_Equipment.conf | 1 + ..._InventoryItems_EntityCatalog_Medical.conf | 1 + .../FIA/InventoryItems_EntityCatalog_FIA.conf | 21 +++++++++++++++++++ .../EntityCatalog/UK/UK_InventoryItems.conf | 21 +++++++++++++++++++ .../US/InventoryItems_EntityCatalog_US.conf | 21 +++++++++++++++++++ .../InventoryItems_EntityCatalog_USSR.conf | 21 +++++++++++++++++++ 6 files changed, 86 insertions(+) diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf index 0cd2d47a3..50bb4f977 100644 --- a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf @@ -20,4 +20,5 @@ ACE_EntityCatalogMultiListEntry { } } } + m_iACE_Priority -30 } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf index b4cc85c51..513c3949b 100644 --- a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf @@ -1,3 +1,4 @@ ACE_EntityCatalogMultiListEntry { m_sIdentifier "ACE Medical" + m_iACE_Priority -40 } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf b/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf index 39a590331..2d3098ef3 100644 --- a/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf +++ b/addons/core/Configs/EntityCatalog/FIA/InventoryItems_EntityCatalog_FIA.conf @@ -1,5 +1,26 @@ SCR_EntityCatalogMultiList { m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{5C630E453CE20F8F}" { + m_iACE_Priority -70 + } + SCR_EntityCatalogMultiListEntry "{5C630E4538D3163D}" { + m_iACE_Priority -60 + } + SCR_EntityCatalogMultiListEntry "{5C630E453CA0B981}" { + m_iACE_Priority -50 + } + SCR_EntityCatalogMultiListEntry "{5C68AD58703CABF4}" { + m_iACE_Priority -40 + } + SCR_EntityCatalogMultiListEntry "{5C630E453BCB39DC}" { + m_iACE_Priority -30 + } + SCR_EntityCatalogMultiListEntry "{5C630E453B60C320}" { + m_iACE_Priority -20 + } + SCR_EntityCatalogMultiListEntry "{5C630E453B27FB86}" { + m_iACE_Priority -10 + } ACE_EntityCatalogMultiListEntry "{69D210804C2BFE9E}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { } ACE_EntityCatalogMultiListEntry "{69D102AC05BFC4DC}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf" { diff --git a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf index f74059f39..eab8980c2 100644 --- a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf @@ -1,5 +1,26 @@ SCR_EntityCatalogMultiList { m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{62D7410A9D46207E}" { + m_iACE_Priority -70 + } + SCR_EntityCatalogMultiListEntry "{62D741081C4FB8F8}" { + m_iACE_Priority -60 + } + SCR_EntityCatalogMultiListEntry "{62DD3B297752B585}" { + m_iACE_Priority -50 + } + SCR_EntityCatalogMultiListEntry "{62DD3B29765366B7}" { + m_iACE_Priority -40 + } + SCR_EntityCatalogMultiListEntry "{62DD3B2896AEA994}" { + m_iACE_Priority -30 + } + SCR_EntityCatalogMultiListEntry "{62DD3B2FD8779B17}" { + m_iACE_Priority -20 + } + SCR_EntityCatalogMultiListEntry "{62DD3B2EC3530C21}" { + m_iACE_Priority -10 + } ACE_EntityCatalogMultiListEntry "{69D13412A3751197}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { } ACE_EntityCatalogMultiListEntry "{69D210807813C38A}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf" { diff --git a/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf index d8a405221..30be64e2e 100644 --- a/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ b/addons/core/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf @@ -1,5 +1,26 @@ SCR_EntityCatalogMultiList { m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{5C68AD59AB9FBDDC}" { + m_iACE_Priority -70 + } + SCR_EntityCatalogMultiListEntry "{5C68AD59AA6FA1B8}" { + m_iACE_Priority -60 + } + SCR_EntityCatalogMultiListEntry "{5C68AD59AA315A22}" { + m_iACE_Priority -50 + } + SCR_EntityCatalogMultiListEntry "{5CA0A9E60B892D2A}" { + m_iACE_Priority -40 + } + SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { + m_iACE_Priority -30 + } + SCR_EntityCatalogMultiListEntry "{5C68AD59AA2B2FF4}" { + m_iACE_Priority -20 + } + SCR_EntityCatalogMultiListEntry "{5C68AD59AA1A6D59}" { + m_iACE_Priority -10 + } ACE_EntityCatalogMultiListEntry "{69D102AC212B4389}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { } ACE_EntityCatalogMultiListEntry "{69D2108069E4B053}" : "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf" { diff --git a/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf index e26d17fb1..e67b1973b 100644 --- a/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ b/addons/core/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf @@ -1,5 +1,26 @@ SCR_EntityCatalogMultiList { m_aMultiLists { + SCR_EntityCatalogMultiListEntry "{5C68AD5F14BDB1A7}" { + m_iACE_Priority -70 + } + SCR_EntityCatalogMultiListEntry "{5C68AD5F148714C4}" { + m_iACE_Priority -60 + } + SCR_EntityCatalogMultiListEntry "{5C68AD5F137C9AFF}" { + m_iACE_Priority -50 + } + SCR_EntityCatalogMultiListEntry "{5C68AD5F1351A624}" { + m_iACE_Priority -40 + } + SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { + m_iACE_Priority -30 + } + SCR_EntityCatalogMultiListEntry "{5C68AD5F13464B23}" { + m_iACE_Priority -20 + } + SCR_EntityCatalogMultiListEntry "{5C68AD5F13240031}" { + m_iACE_Priority -10 + } ACE_EntityCatalogMultiListEntry "{69D102AC4014161D}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { } ACE_EntityCatalogMultiListEntry "{69D2108063218CBD}" : "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf" { From bbff438eeb160cf80ad208ee4445bf3164a711eb Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 15:42:58 +0200 Subject: [PATCH 57/62] Adjust priorities --- .../ACE_InventoryItems_EntityCatalog_Equipment.conf | 2 +- .../EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf index 50bb4f977..bdc38f217 100644 --- a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf @@ -20,5 +20,5 @@ ACE_EntityCatalogMultiListEntry { } } } - m_iACE_Priority -30 + m_iACE_Priority -25 } \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf index 513c3949b..a0b3ea597 100644 --- a/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf +++ b/addons/core/Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf @@ -1,4 +1,4 @@ ACE_EntityCatalogMultiListEntry { m_sIdentifier "ACE Medical" - m_iACE_Priority -40 + m_iACE_Priority -35 } \ No newline at end of file From 1d65a261686f4635e7e04a74d900db322c597a7b Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 15:44:11 +0200 Subject: [PATCH 58/62] Add prioirties to BF subconfigs --- .../UK/Arsenal Lists/UK_Ammunition_All.conf | 3 +++ .../Arsenal Lists/UK_Ammunition_All.conf.meta | 17 +++++++++++++ .../Arsenal Lists/UK_BackpacksVests_All.conf | 3 +++ .../UK_BackpacksVests_All.conf.meta | 17 +++++++++++++ .../UK/Arsenal Lists/UK_Clothing_All.conf | 3 +++ .../Arsenal Lists/UK_Clothing_All.conf.meta | 17 +++++++++++++ .../UK/Arsenal Lists/UK_Equipment_All.conf | 3 +++ .../Arsenal Lists/UK_Equipment_All.conf.meta | 17 +++++++++++++ .../UK/Arsenal Lists/UK_Explosives_All.conf | 3 +++ .../Arsenal Lists/UK_Explosives_All.conf.meta | 17 +++++++++++++ .../UK_WeaponAttachments_All.conf | 3 +++ .../UK_WeaponAttachments_All.conf.meta | 17 +++++++++++++ .../UK/Arsenal Lists/UK_Weapons_All.conf | 3 +++ .../UK/Arsenal Lists/UK_Weapons_All.conf.meta | 17 +++++++++++++ .../EntityCatalog/UK/UK_InventoryItems.conf | 25 ++----------------- 15 files changed, 142 insertions(+), 23 deletions(-) create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf.meta create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf create mode 100644 addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf.meta diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf new file mode 100644 index 000000000..043707a49 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf @@ -0,0 +1,3 @@ +SCR_EntityCatalogMultiListEntry { + m_iACE_Priority -60 +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf.meta b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf.meta new file mode 100644 index 000000000..765355db8 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{9B8732534F2FCDAE}Configs/EntityCatalog/UK/Arsenal Lists/UK_Ammunition_All.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf new file mode 100644 index 000000000..b0d41ef9e --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf @@ -0,0 +1,3 @@ +SCR_EntityCatalogMultiListEntry { + m_iACE_Priority -20 +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf.meta b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf.meta new file mode 100644 index 000000000..636707ef3 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{89C89802F8B15EF0}Configs/EntityCatalog/UK/Arsenal Lists/UK_BackpacksVests_All.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf new file mode 100644 index 000000000..d13f2664e --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf @@ -0,0 +1,3 @@ +SCR_EntityCatalogMultiListEntry { + m_iACE_Priority -10 +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf.meta b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf.meta new file mode 100644 index 000000000..dd8741a2d --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{2A937B904F3FA670}Configs/EntityCatalog/UK/Arsenal Lists/UK_Clothing_All.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf new file mode 100644 index 000000000..9f5d327ac --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf @@ -0,0 +1,3 @@ +SCR_EntityCatalogMultiListEntry { + m_iACE_Priority -30 +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf.meta b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf.meta new file mode 100644 index 000000000..faf27f22f --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{92B601BD2DC5A55F}Configs/EntityCatalog/UK/Arsenal Lists/UK_Equipment_All.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf new file mode 100644 index 000000000..e001fab76 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf @@ -0,0 +1,3 @@ +SCR_EntityCatalogMultiListEntry { + m_iACE_Priority -40 +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf.meta b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf.meta new file mode 100644 index 000000000..ab28dc1c8 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{0F0D0C941E412EE7}Configs/EntityCatalog/UK/Arsenal Lists/UK_Explosives_All.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf new file mode 100644 index 000000000..854beddfc --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf @@ -0,0 +1,3 @@ +SCR_EntityCatalogMultiListEntry { + m_iACE_Priority -50 +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf.meta b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf.meta new file mode 100644 index 000000000..21650723d --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{37FBA7E7466F4CB9}Configs/EntityCatalog/UK/Arsenal Lists/UK_WeaponAttachments_All.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf new file mode 100644 index 000000000..23d083d1d --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf @@ -0,0 +1,3 @@ +SCR_EntityCatalogMultiListEntry { + m_iACE_Priority -70 +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf.meta b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf.meta new file mode 100644 index 000000000..083d66647 --- /dev/null +++ b/addons/core/Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf.meta @@ -0,0 +1,17 @@ +MetaFileClass { + Name "{C2EE8603146E36CB}Configs/EntityCatalog/UK/Arsenal Lists/UK_Weapons_All.conf" + Configurations { + CONFResourceClass PC { + } + CONFResourceClass XBOX_ONE : PC { + } + CONFResourceClass XBOX_SERIES : PC { + } + CONFResourceClass PS4 : PC { + } + CONFResourceClass PS5 : PC { + } + CONFResourceClass HEADLESS : PC { + } + } +} \ No newline at end of file diff --git a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf index eab8980c2..e315d7a65 100644 --- a/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf +++ b/addons/core/Configs/EntityCatalog/UK/UK_InventoryItems.conf @@ -1,29 +1,8 @@ SCR_EntityCatalogMultiList { m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{62D7410A9D46207E}" { - m_iACE_Priority -70 + ACE_EntityCatalogMultiListEntry "{69D247D5F3DF316A}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { } - SCR_EntityCatalogMultiListEntry "{62D741081C4FB8F8}" { - m_iACE_Priority -60 - } - SCR_EntityCatalogMultiListEntry "{62DD3B297752B585}" { - m_iACE_Priority -50 - } - SCR_EntityCatalogMultiListEntry "{62DD3B29765366B7}" { - m_iACE_Priority -40 - } - SCR_EntityCatalogMultiListEntry "{62DD3B2896AEA994}" { - m_iACE_Priority -30 - } - SCR_EntityCatalogMultiListEntry "{62DD3B2FD8779B17}" { - m_iACE_Priority -20 - } - SCR_EntityCatalogMultiListEntry "{62DD3B2EC3530C21}" { - m_iACE_Priority -10 - } - ACE_EntityCatalogMultiListEntry "{69D13412A3751197}" : "{A5E3827C546B8210}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Medical.conf" { - } - ACE_EntityCatalogMultiListEntry "{69D210807813C38A}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf" { + ACE_EntityCatalogMultiListEntry "{69D247D5F0D5014E}" : "{E7D9069BE26B7A4C}Configs/EntityCatalog/UK/ACE_InventoryItems_EntityCatalog_Equipment_UK.conf" { } } } \ No newline at end of file From 51e1859b208fc47b877a4ed0220959923b9c78b4 Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 15:44:50 +0200 Subject: [PATCH 59/62] Use InsertSort for stable sorting --- .../EntityCatalog/SCR_EntityCatalogMultiList.c | 2 +- .../EntityCatalog/SCR_EntityCatalogMultiListEntry.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c index c9b69bea3..495c967b1 100644 --- a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c +++ b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c @@ -5,7 +5,7 @@ modded class SCR_EntityCatalogMultiList: SCR_EntityCatalog //------------------------------------------------------------------------------------------------ protected override void InitCatalog() { - m_aMultiLists.Sort(); + ACE_Sorting, ACE_CompateEntityCatalogMultiListEntryPriority>.InsertSort(m_aMultiLists); super.InitCatalog(); } } diff --git a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c index 488abd66c..de89fb368 100644 --- a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c +++ b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiListEntry.c @@ -3,5 +3,15 @@ modded class SCR_EntityCatalogMultiListEntry { [SortAttribute(), Attribute(desc: "Sort priority of the entry. Lower value means higher priority.")] - protected int m_iACE_Priority; + int m_iACE_Priority; +} + +//------------------------------------------------------------------------------------------------ +class ACE_CompateEntityCatalogMultiListEntryPriority : SCR_SortCompare +{ + //------------------------------------------------------------------------------------------------ + override static int Compare(SCR_EntityCatalogMultiListEntry left, SCR_EntityCatalogMultiListEntry right) + { + return left.m_iACE_Priority < right.m_iACE_Priority; + } } From 2dddfe2b03f82b6328e0ce434f7ec55038674b63 Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 15:45:30 +0200 Subject: [PATCH 60/62] Add InsertSort --- .../ACE_Core/Global/Sorting/ACE_Sorting.c | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c diff --git a/addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c b/addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c new file mode 100644 index 000000000..8fdc4efd8 --- /dev/null +++ b/addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c @@ -0,0 +1,28 @@ +//--------------------------------------------------------------------------------------------------- +class ACE_Sorting +{ + //--------------------------------------------------------------------------------------------------- + static void InsertSort(TContainer a, bool inverse = false) + { + for (int i = 1, count = a.Count(); i < count; i++) + { + T tmp = a[i]; + + for (int j = i; j > 0; j--) + { + if (!inverse) + { + if (!TCompare.Compare(tmp, a[j - 1])) + break; + } + else + { + if (!TCompare.Compare(a[j - 1], tmp)) + break; + } + + a.SwapItems(j - 1, j); + } + } + } +} From dea1510a95fb10e8b8a51c78f5b1fae04b00e42e Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 16:06:45 +0200 Subject: [PATCH 61/62] Rname sorting method and add doc comments --- .../Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c | 2 +- .../core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c index 495c967b1..991550c20 100644 --- a/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c +++ b/addons/core/scripts/Game/ACE_Core/EntityCatalog/SCR_EntityCatalogMultiList.c @@ -5,7 +5,7 @@ modded class SCR_EntityCatalogMultiList: SCR_EntityCatalog //------------------------------------------------------------------------------------------------ protected override void InitCatalog() { - ACE_Sorting, ACE_CompateEntityCatalogMultiListEntryPriority>.InsertSort(m_aMultiLists); + ACE_Sorting, ACE_CompateEntityCatalogMultiListEntryPriority>.InsertionSort(m_aMultiLists); super.InitCatalog(); } } diff --git a/addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c b/addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c index 8fdc4efd8..94defbf65 100644 --- a/addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c +++ b/addons/core/scripts/Game/ACE_Core/Global/Sorting/ACE_Sorting.c @@ -2,7 +2,10 @@ class ACE_Sorting { //--------------------------------------------------------------------------------------------------- - static void InsertSort(TContainer a, bool inverse = false) + //! Sorts container inplace with insertion sort, a stable and adpative sorting algorithm + //! \param[in] a Container to sort + //! \param[in] inverse Sort in ascending order when false + static void InsertionSort(TContainer a, bool inverse = false) { for (int i = 1, count = a.Count(); i < count; i++) { From ecd3817d40896acc8430d564efada1819108b20f Mon Sep 17 00:00:00 2001 From: Kex Date: Thu, 9 Jul 2026 16:46:55 +0200 Subject: [PATCH 62/62] Move to new arsenal configs --- ...ntoryItems_EntityCatalog_Equipment_US.conf | 13 ++++++++++ ...tems_EntityCatalog_Equipment_US.conf.meta} | 2 +- .../US/InventoryItems_EntityCatalog_US.conf | 17 ------------ ...oryItems_EntityCatalog_Equipment_USSR.conf | 22 ++++++++++++++++ ...ms_EntityCatalog_Equipment_USSR.conf.meta} | 2 +- .../InventoryItems_EntityCatalog_USSR.conf | 26 ------------------- 6 files changed, 37 insertions(+), 45 deletions(-) create mode 100644 addons/ballistics/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf rename addons/ballistics/Configs/EntityCatalog/US/{InventoryItems_EntityCatalog_US.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta} (71%) delete mode 100644 addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf create mode 100644 addons/ballistics/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf rename addons/ballistics/Configs/EntityCatalog/USSR/{InventoryItems_EntityCatalog_USSR.conf.meta => ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta} (71%) delete mode 100644 addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf diff --git a/addons/ballistics/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf b/addons/ballistics/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf new file mode 100644 index 000000000..b099f983d --- /dev/null +++ b/addons/ballistics/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf @@ -0,0 +1,13 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{68F60CE8757407E8}" { + m_sEntityPrefab "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et" + m_aEntityDataList { + SCR_ArsenalItem "{68F60CE875732DB6}" { + m_eItemType SNIPER_RIFLE + m_iSupplyCost 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta b/addons/ballistics/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta similarity index 71% rename from addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta rename to addons/ballistics/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta index 185e41b20..b8ff4eada 100644 --- a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf.meta +++ b/addons/ballistics/Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{5F7EC52FC40A03E2}Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf" + Name "{12790B4E7D42F952}Configs/EntityCatalog/US/ACE_InventoryItems_EntityCatalog_Equipment_US.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf b/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf deleted file mode 100644 index 916f96cf9..000000000 --- a/addons/ballistics/Configs/EntityCatalog/US/InventoryItems_EntityCatalog_US.conf +++ /dev/null @@ -1,17 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD59F0753ABE}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{68F60CE8757407E8}" { - m_sEntityPrefab "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et" - m_aEntityDataList { - SCR_ArsenalItem "{68F60CE875732DB6}" { - m_eItemType SNIPER_RIFLE - m_iSupplyCost 0 - } - } - } - } - } - } -} \ No newline at end of file diff --git a/addons/ballistics/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf b/addons/ballistics/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf new file mode 100644 index 000000000..39ca1d2be --- /dev/null +++ b/addons/ballistics/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf @@ -0,0 +1,22 @@ +ACE_EntityCatalogMultiListEntry : "{0AFC873567388CDE}Configs/EntityCatalog/ACE_InventoryItems_EntityCatalog_Equipment.conf" { + m_aEntities { + SCR_EntityCatalogInventoryItem "{68F60CE9B49FF3B1}" { + m_sEntityPrefab "{4EE236EE814D3584}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et" + m_aEntityDataList { + SCR_ArsenalItem "{68F60CE9B49FF3C9}" { + m_eItemType SNIPER_RIFLE + m_iSupplyCost 0 + } + } + } + SCR_EntityCatalogInventoryItem "{68FC1033FC9003A7}" { + m_sEntityPrefab "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et" + m_aEntityDataList { + SCR_ArsenalItem "{68FC1033FC90C3DA}" { + m_eItemType SNIPER_RIFLE + m_iSupplyCost 0 + } + } + } + } +} \ No newline at end of file diff --git a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta b/addons/ballistics/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta similarity index 71% rename from addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta rename to addons/ballistics/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta index 44514319b..34fe78e69 100644 --- a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf.meta +++ b/addons/ballistics/Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf.meta @@ -1,5 +1,5 @@ MetaFileClass { - Name "{C53421647C3D0D2E}Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf" + Name "{382ACD2D23811DDE}Configs/EntityCatalog/USSR/ACE_InventoryItems_EntityCatalog_Equipment_USSR.conf" Configurations { CONFResourceClass PC { } diff --git a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf b/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf deleted file mode 100644 index 21ba4002d..000000000 --- a/addons/ballistics/Configs/EntityCatalog/USSR/InventoryItems_EntityCatalog_USSR.conf +++ /dev/null @@ -1,26 +0,0 @@ -SCR_EntityCatalogMultiList { - m_aMultiLists { - SCR_EntityCatalogMultiListEntry "{5C68AD5F7414CA4A}" { - m_aEntities { - SCR_EntityCatalogInventoryItem "{68F60CE9B49FF3B1}" { - m_sEntityPrefab "{4EE236EE814D3584}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_WpMils.et" - m_aEntityDataList { - SCR_ArsenalItem "{68F60CE9B49FF3C9}" { - m_eItemType SNIPER_RIFLE - m_iSupplyCost 0 - } - } - } - SCR_EntityCatalogInventoryItem "{68FC1033FC9003A7}" { - m_sEntityPrefab "{03C6EB1EBD25AA33}Prefabs/Items/Equipment/BallisticTable/ACE_BallisticTable_Mrads.et" - m_aEntityDataList { - SCR_ArsenalItem "{68FC1033FC90C3DA}" { - m_eItemType SNIPER_RIFLE - m_iSupplyCost 0 - } - } - } - } - } - } -} \ No newline at end of file