diff --git a/.hemtt/project.toml b/.hemtt/project.toml
index f5ed361e3e..a9535dd2ba 100644
--- a/.hemtt/project.toml
+++ b/.hemtt/project.toml
@@ -34,32 +34,26 @@ workshop = [
]
[hemtt.launch.spe]
-workshop = [
- "450814997", # CBA_A3
-]
+extends = "default"
dlc = [
"spe"
]
[hemtt.launch.vn]
-workshop = [
- "450814997", # CBA_A3's Workshop ID
-]
+extends = "default"
dlc = [
"S.O.G. Prairie Fire",
]
[hemtt.launch.ws]
-workshop = [
- "450814997", # CBA_A3's Workshop ID
-]
+extends = "default"
dlc = [
"Western Sahara",
]
[hemtt.launch.rhs]
+extends = "default"
workshop = [
- "450814997", # CBA_A3's Workshop ID
"843425103", # RHS AFRF Workshop ID
"843577117", # RHS USAF Workshop ID
"843593391", # RHS GREF Workshop ID
diff --git a/addons/advanced_fatigue/XEH_PREP.hpp b/addons/advanced_fatigue/XEH_PREP.hpp
index 22bb99617a..509c85e375 100644
--- a/addons/advanced_fatigue/XEH_PREP.hpp
+++ b/addons/advanced_fatigue/XEH_PREP.hpp
@@ -10,3 +10,4 @@ PREP(mainLoop);
PREP(moduleSettings);
PREP(removeDutyFactor);
PREP(renderDebugLines);
+PREP(updateStaminaBar);
diff --git a/addons/advanced_fatigue/XEH_postInit.sqf b/addons/advanced_fatigue/XEH_postInit.sqf
index 519d218b8c..e3b75a64a6 100644
--- a/addons/advanced_fatigue/XEH_postInit.sqf
+++ b/addons/advanced_fatigue/XEH_postInit.sqf
@@ -14,6 +14,8 @@ call FUNC(renderDebugLines);
["CBA_settingsInitialized", {
if (!GVAR(enabled)) exitWith {};
+ [QEGVAR(ui,hideHud), LINKFUNC(updateStaminaBar)] call CBA_fnc_addEventHandler;
+
["baseline", {
private _fatigue = ACE_player getVariable [QGVAR(aimFatigue), 0];
switch (stance ACE_player) do {
diff --git a/addons/advanced_fatigue/functions/fnc_mainLoop.sqf b/addons/advanced_fatigue/functions/fnc_mainLoop.sqf
index a07abae794..16d355a424 100644
--- a/addons/advanced_fatigue/functions/fnc_mainLoop.sqf
+++ b/addons/advanced_fatigue/functions/fnc_mainLoop.sqf
@@ -140,7 +140,7 @@ systemChat format ["---- velocity %1 - respiratoryRate: %2 ----", (vectorMagnitu
[ACE_player, _perceivedFatigue, GVAR(anReserve) == 0, _fwdAngle, _sideAngle] call FUNC(handleEffects);
-if (GVAR(enableStaminaBar)) then {
+if (GVAR(enableStaminaBarRealized)) then {
[GVAR(anReserve) / AN_MAXRESERVE] call FUNC(handleStaminaBar);
};
diff --git a/addons/advanced_fatigue/functions/fnc_updateStaminaBar.sqf b/addons/advanced_fatigue/functions/fnc_updateStaminaBar.sqf
new file mode 100644
index 0000000000..627430c820
--- /dev/null
+++ b/addons/advanced_fatigue/functions/fnc_updateStaminaBar.sqf
@@ -0,0 +1,25 @@
+#include "..\script_component.hpp"
+/*
+ * Author: PabstMirror
+ * Updates the stamina bar state
+ *
+ * Arguments:
+ * None
+ *
+ * Return Value:
+ * None
+ *
+ * Example:
+ * [] call ace_advanced_fatigue_fnc_updateStaminaBar
+ *
+ * Public: No
+ */
+
+GVAR(enableStaminaBarRealized) = GVAR(enabled) && GVAR(enableStaminaBar) && {!(missionNamespace getVariable [QEGVAR(ui,hideHud), false])};
+TRACE_1("updateStaminaBar",GVAR(enableStaminaBarRealized));
+
+private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
+if (isNull _staminaBarContainer) exitWith {};
+
+_staminaBarContainer ctrlSetFade ([1, 0] select GVAR(enableStaminaBarRealized));
+_staminaBarContainer ctrlCommit 0;
diff --git a/addons/advanced_fatigue/initSettings.inc.sqf b/addons/advanced_fatigue/initSettings.inc.sqf
index 01eba8652d..40d1d08f0d 100644
--- a/addons/advanced_fatigue/initSettings.inc.sqf
+++ b/addons/advanced_fatigue/initSettings.inc.sqf
@@ -6,12 +6,7 @@
true,
1,
{
- if (!_this) then {
- private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
- _staminaBarContainer ctrlSetFade 1;
- _staminaBarContainer ctrlCommit 0;
- };
-
+ call FUNC(updateStaminaBar);
[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)
},
true // Needs mission restart
@@ -24,13 +19,7 @@
LSTRING(DisplayName),
true,
1,
- {
- if (!_this) then {
- private _staminaBarContainer = uiNamespace getVariable [QGVAR(staminaBarContainer), controlNull];
- _staminaBarContainer ctrlSetFade 1;
- _staminaBarContainer ctrlCommit 0;
- };
- }
+ {call FUNC(updateStaminaBar)}
] call CBA_fnc_addSetting;
[
diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml
index 041653fe2b..bcec121106 100644
--- a/addons/aircraft/stringtable.xml
+++ b/addons/aircraft/stringtable.xml
@@ -182,6 +182,7 @@
Distanza di seguimento
Folge-Entfernung
따라가는 거리
+ Distance de suivi
追跡距離
@@ -189,6 +190,7 @@
Seguendo unità entro %1m
Folgt Einheit bis zu %1m
%1m 이내로 유닛을 따라갑니다
+ Suivre l'unité jusqu'à %1m
%1m 間隔で 目標を追跡します
diff --git a/addons/common/functions/fnc_showHud.sqf b/addons/common/functions/fnc_showHud.sqf
index 5bb0153772..d74bed9cbd 100644
--- a/addons/common/functions/fnc_showHud.sqf
+++ b/addons/common/functions/fnc_showHud.sqf
@@ -6,8 +6,8 @@
*
* Arguments:
* 0: Source ID (default: "")
- * 1: Show Hud Bool Array (8 to set, empty to remove) (default: [])
- * - [hud, info, radar, compass, direction, menu, group, cursors]
+ * 1: Show Hud Bool Array (10 to set, empty to remove) (default: [])
+ * - [hud, info, radar, compass, direction, menu, group, cursors, panels, kills]
* - hud: Boolean - show scripted HUD (same as normal showHUD true/false)
* - info: Boolean - show vehicle + soldier info (hides weapon info from the HUD as well)
* - radar: Boolean - show vehicle radar
@@ -17,7 +17,8 @@
* - group: Boolean - show group info bar (hides squad leader info bar)
* - cursors: Boolean - show HUD weapon cursors (connected with scripted HUD)
* - panels: Boolean - show vehicle panels / GPS
- * - ???: Boolean - Possibly related to changelog entry `Added: A new showKillConfirmations parameter for the showHud command`
+ * - kills: Boolean - show "x killed by y" systemChat messages
+ * - showIcon3D: is unsupported as it has inverted logic
*
* Return Value:
* Resulting ShowHud Array
diff --git a/addons/compat_cup_vehicles/CfgVehicles.hpp b/addons/compat_cup_vehicles/CfgVehicles.hpp
index 5334987fff..ce502abad5 100644
--- a/addons/compat_cup_vehicles/CfgVehicles.hpp
+++ b/addons/compat_cup_vehicles/CfgVehicles.hpp
@@ -1,4 +1,31 @@
class CfgVehicles {
+ class CUP_nHMMWV_Base;
+ class CUP_nM1025_SOV_Base: CUP_nHMMWV_Base {
+ class EGVAR(interaction,anims) {
+ class hide_backpacks {
+ positions[] = {
+ "(_target selectionPosition ['vhc_backpacks', 'ViewGeometry', 'AveragePoint']) vectorAdd [-1, 0, 0]",
+ "(_target selectionPosition ['vhc_backpacks', 'ViewGeometry', 'AveragePoint']) vectorAdd [1.3, 0, 0]"
+ };
+ items[] = {"CUP_B_USPack_Coyote", "CUP_B_USPack_Coyote", "CUP_B_AssaultPack_ACU", "CUP_B_AssaultPack_ACU", "CUP_B_AssaultPack_Coyote"};
+ name = "$STR_a3_cfgvehicleclasses_backpacks0";
+ text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ };
+ };
+ };
+
+ class Car_F;
+ class CUP_ECVHMMWV_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_deploy2 {
+ positions[] = {"(_target selectionPosition ['vhc_rear_trunk_door', 'FireGeometry', 'AveragePoint']) vectorAdd [-0.7, 0, 0]"};
+ items[] = {"CUP_B_USPack_Coyote", "CUP_B_AssaultPack_ACU"};
+ name = "$STR_a3_cfgvehicleclasses_backpacks0";
+ text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ };
+ };
+ };
+
class CUP_MTVR_Base;
class CUP_MTVR_Reammo_Base: CUP_MTVR_Base {
EGVAR(rearm,defaultSupply) = 1200;
@@ -106,6 +133,17 @@ class CfgVehicles {
class CUP_BTR90_HQ_Base: CUP_BTR90_Base { delete ace_viewports; }; // no cargo seats
class Tank_F;
+ class CUP_AAV_Base: Tank_F {
+ class EGVAR(interaction,anims) {
+ class Hide_Bags_Deployment {
+ positions[] = {{1.7, -0.7, -0.3}, {1.7, -2.55, -0.3}};
+ items[] = {"CUP_B_USPack_Coyote", "CUP_B_USPack_Coyote"};
+ name = "$STR_CUP_dn_USpack_coyote";
+ text = "$STR_CUP_dn_USpack_coyote";
+ };
+ };
+ };
+
class CUP_M2Bradley_Base: Tank_F {
ace_hunterkiller = 1;
class ace_viewports {
diff --git a/addons/compat_cup_vehicles/compat_cup_repair/CfgVehicles.hpp b/addons/compat_cup_vehicles/compat_cup_repair/CfgVehicles.hpp
new file mode 100644
index 0000000000..29a471f451
--- /dev/null
+++ b/addons/compat_cup_vehicles/compat_cup_repair/CfgVehicles.hpp
@@ -0,0 +1,196 @@
+class CfgVehicles {
+ class Car_F;
+ class CUP_Datsun_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hideSpareTire {
+ positions[] = {{-0.23, -0.25, -0.8}};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class CUP_Datsun_AA_Base: CUP_Datsun_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hideSpareTire: hideSpareTire {
+ enabled = 0;
+ };
+ };
+ };
+
+ class CUP_Tigr_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_ReserveWheel {
+ positions[] = {{0.57, -2.3, -0.55}};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class CUP_Tigr_STS_PK_Base: CUP_Tigr_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_ReserveWheel: hide_ReserveWheel {};
+ };
+ };
+ class CUP_Tigr_233014_PK_Base: CUP_Tigr_STS_PK_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_ReserveWheel: hide_ReserveWheel {
+ positions[] = {{0.57, -2.3, -0.85}};
+ };
+ };
+ };
+ class CUP_Tigr_M_PK_Base: CUP_Tigr_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_ReserveWheel: hide_ReserveWheel {};
+ };
+ };
+ class CUP_Tigr_233114_PK_Base: CUP_Tigr_M_PK_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_ReserveWheel: hide_ReserveWheel {
+ positions[] = {{0.57, -2.3, -0.85}};
+ };
+ };
+ };
+
+ class CUP_LR_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class selection_wheelfront {
+ positions[] = {"_target selectionPosition ['selection_wheelfront', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ class selection_wheels {
+ positions[] = {
+ "(_target selectionPosition ['selection_wheels', 'ViewGeometry', 'AveragePoint']) vectorAdd [-1.1, 0, 0]",
+ "(_target selectionPosition ['selection_wheels', 'ViewGeometry', 'AveragePoint']) vectorAdd [1.1, 0, 0]"
+ };
+ items[] = {"ACE_Wheel", "ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ class CUP_nHMMWV_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_spare_wheel {
+ positions[] = {"_target selectionPosition ['vhc_spare_wheel', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ // Don't inherit, as it's easier for the main compat
+ class CUP_nM1025_SOV_Base: CUP_nHMMWV_Base {
+ class EGVAR(interaction,anims) {
+ class hide_spare_wheel {
+ positions[] = {"_target selectionPosition ['vhc_spare_wheel', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ class CUP_RG31_BASE: Car_F {
+ class EGVAR(interaction,anims) {
+ class left_spare {
+ positions[] = {"_target selectionPosition ['left_spare', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ class right_spare {
+ positions[] = {"_target selectionPosition ['right_spare', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ class CUP_UAZ_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_spare_wheel {
+ positions[] = {"_target selectionPosition ['spare_wheel', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class CUP_UAZ_Armed_Base: CUP_UAZ_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {};
+ };
+ };
+ class CUP_UAZ_AA_Base: CUP_UAZ_Armed_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {
+ positions[] = {{0.18, -1.8, 0.75}};
+ };
+ };
+ };
+ class CUP_UAZ_AGS30_Base: CUP_UAZ_Armed_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {
+ positions[] = {{0.18, -1.9, 0.75}};
+ };
+ };
+ };
+ class CUP_UAZ_MG_Base: CUP_UAZ_Armed_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {
+ positions[] = {{0.18, -1.9, 0.2}};
+ };
+ };
+ };
+ // Visual is bugged, but it works
+ class CUP_UAZ_METIS_Base: CUP_UAZ_Armed_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {
+ positions[] = {{0.18, -1.9, 0.65}};
+ };
+ };
+ };
+ class CUP_UAZ_SPG9_Base: CUP_UAZ_Armed_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {
+ positions[] = {{0.18, -1.9, 1.05}};
+ };
+ };
+ };
+
+ class CUP_UAZ_Unarmed_Base: CUP_UAZ_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {};
+ };
+ };
+ class CUP_UAZ_Open_Base: CUP_UAZ_Unarmed_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_spare_wheel: hide_spare_wheel {
+ positions[] = {{0.135, -1.3, 0.7}};
+ };
+ };
+ };
+
+ class CUP_ECVHMMWV_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_spare_tire {
+ positions[] = {"(_target selectionPosition ['vhc_rear_trunk_door', 'FireGeometry', 'AveragePoint']) vectorAdd [0.05, -0.4, 0.2]"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ class hide_deploy1 {
+ positions[] = {"(_target selectionPosition ['vhc_rear_trunk_door', 'FireGeometry', 'AveragePoint']) vectorAdd [0.05, 0.5, 0.7]"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+};
diff --git a/addons/compat_cup_vehicles/compat_cup_repair/config.cpp b/addons/compat_cup_vehicles/compat_cup_repair/config.cpp
new file mode 100644
index 0000000000..9a2785e7ef
--- /dev/null
+++ b/addons/compat_cup_vehicles/compat_cup_repair/config.cpp
@@ -0,0 +1,23 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "CUP_Vehicles_LoadOrder",
+ "ace_repair"
+ };
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_cup_vehicles/compat_cup_repair/script_component.hpp b/addons/compat_cup_vehicles/compat_cup_repair/script_component.hpp
new file mode 100644
index 0000000000..1af928486c
--- /dev/null
+++ b/addons/compat_cup_vehicles/compat_cup_repair/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT repair
+#define SUBCOMPONENT_BEAUTIFIED Repair
+#include "..\script_component.hpp"
diff --git a/addons/compat_cup_vehicles/compat_cup_trenches/CfgVehicles.hpp b/addons/compat_cup_vehicles/compat_cup_trenches/CfgVehicles.hpp
new file mode 100644
index 0000000000..9d9bc2d62e
--- /dev/null
+++ b/addons/compat_cup_vehicles/compat_cup_trenches/CfgVehicles.hpp
@@ -0,0 +1,111 @@
+class CfgVehicles {
+ class Car_F;
+ class CUP_Tigr_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_tools {
+ positions[] = {{1.15, -1.5, -0.68}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class CUP_Tigr_STS_PK_Base: CUP_Tigr_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools: hide_tools {};
+ };
+ };
+ class CUP_Tigr_233014_PK_Base: CUP_Tigr_STS_PK_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools: hide_tools {
+ positions[] = {{1.15, -1.5, -1}};
+ };
+ };
+ };
+ class CUP_Tigr_M_PK_Base: CUP_Tigr_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools: hide_tools {};
+ };
+ };
+ class CUP_Tigr_233114_PK_Base: CUP_Tigr_M_PK_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools: hide_tools {
+ positions[] = {{1.15, -1.5, -1}};
+ };
+ };
+ };
+
+ // Interaction added to both sides, as the whole vehicle is mirrored if in left/right side
+ class CUP_LR_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class selection_tool {
+ positions[] = {{-0.53, 1.65, -0.2}, {0.53, 1.65, -0.2}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class CUP_LR_MG_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_tool: selection_tool {
+ positions[] = {{-0.6, 1.4, 1.4}, {0.45, 1.4, 1.4}};
+ };
+ };
+ };
+ class CUP_LR_SPG9_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_tool: selection_tool {};
+ };
+ };
+ class CUP_LR_AA_Base: CUP_LR_SPG9_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_tool: selection_tool {
+ positions[] = {{-0.55, 1.77, -0.75}, {0.55, 1.77, -0.75}};
+ };
+ };
+ };
+ class CUP_LR_Ambulance_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_tool: selection_tool {
+ positions[] = {{-0.55, 2.1, -0.2}, {0.55, 2.1, -0.2}};
+ };
+ };
+ };
+ class CUP_LR_Special_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_tool: selection_tool {
+ positions[] = {{-0.6, 1.4, 1.4}, {0.45, 1.4, 1.4}};
+ };
+ };
+ };
+
+ class CUP_ECVHMMWV_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_front_tool_rack {
+ positions[] = {"(_target selectionPosition ['vhc_rear_trunk_door', 'FireGeometry', 'AveragePoint']) vectorAdd [0.37, 4, 0.2]"};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+
+ class Tank_F;
+ class CUP_leopard_1A3_base: Tank_F {
+ class EGVAR(interaction,anims) {
+ class hide_Tools_L {
+ positions[] = {{-2.2, 0, 0.2}, {-2.2, -1.8, 0.2}};
+ items[] = {"ACE_EntrenchingTool", "ACE_wirecutter"};
+ name = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ text = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ };
+ class hide_Tools_R {
+ positions[] = {{0.9, -1.5, 0.23}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+};
diff --git a/addons/compat_cup_vehicles/compat_cup_trenches/config.cpp b/addons/compat_cup_vehicles/compat_cup_trenches/config.cpp
new file mode 100644
index 0000000000..8f05885bd6
--- /dev/null
+++ b/addons/compat_cup_vehicles/compat_cup_trenches/config.cpp
@@ -0,0 +1,23 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "CUP_Vehicles_LoadOrder",
+ "ace_trenches"
+ };
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_cup_vehicles/compat_cup_trenches/script_component.hpp b/addons/compat_cup_vehicles/compat_cup_trenches/script_component.hpp
new file mode 100644
index 0000000000..10b90eb71e
--- /dev/null
+++ b/addons/compat_cup_vehicles/compat_cup_trenches/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT trenches
+#define SUBCOMPONENT_BEAUTIFIED Trenches
+#include "..\script_component.hpp"
diff --git a/addons/compat_cup_vehicles/compat_cup_vehicles_fastroping/config.cpp b/addons/compat_cup_vehicles/compat_cup_vehicles_fastroping/config.cpp
index 1abe0de6ea..10eb5da69f 100644
--- a/addons/compat_cup_vehicles/compat_cup_vehicles_fastroping/config.cpp
+++ b/addons/compat_cup_vehicles/compat_cup_vehicles_fastroping/config.cpp
@@ -15,6 +15,8 @@ class CfgPatches {
authors[] = {"Community Upgrade Project", "Mike"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
};
};
diff --git a/addons/compat_cup_vehicles/compat_cup_vehicles_refuel/CfgVehicles.hpp b/addons/compat_cup_vehicles/compat_cup_vehicles_refuel/CfgVehicles.hpp
index 1042c0eacf..60a83030df 100644
--- a/addons/compat_cup_vehicles/compat_cup_vehicles_refuel/CfgVehicles.hpp
+++ b/addons/compat_cup_vehicles/compat_cup_vehicles_refuel/CfgVehicles.hpp
@@ -28,4 +28,90 @@ class CfgVehicles {
EGVAR(refuel,hooks)[] = {{-1.09, -0.01, -0.5},{1, -0.01, -0.5}};
EGVAR(refuel,fuelCargo) = 10000;
};
+
+ class Car_F;
+ class CUP_LR_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class selection_jerry {
+ positions[] = {{-0.65, 2.7, -0.55}, {0.65, 2.7, -0.55}, {-1, -0.25, -0.75}, {1, -0.25, -0.75}};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class CUP_LR_MG_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_jerry: selection_jerry {
+ positions[] = {{-0.55, 2.45, 1.05}, {0.55, 2.45, 1.05}, {-1, -0.53, 0.9}, {1, -0.53, 0.9}};
+ };
+ };
+ };
+ class CUP_LR_SPG9_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_jerry: selection_jerry {};
+ };
+ };
+ class CUP_LR_AA_Base: CUP_LR_SPG9_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_jerry: selection_jerry {
+ positions[] = {{-0.65, 2.8, -1.1}, {0.65, 2.8, -1.1}, {-1, -0.15, -1.3}, {1, -0.15, -1.3}};
+ };
+ };
+ };
+ class CUP_LR_Ambulance_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_jerry: selection_jerry {
+ positions[] = {{-0.65, 3.1, -0.55}, {0.65, 3.1, -0.55}};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ };
+ };
+ class CUP_LR_Special_Base: CUP_LR_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class selection_jerry: selection_jerry {
+ positions[] = {{-0.7, 2.45, 1.05}, {0.55, 2.45, 1.05}};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ };
+ };
+
+ class CUP_nHMMWV_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_jerrycans {
+ positions[] = {"(_target selectionPosition 'vhc_jerrycans') vectorAdd [0, 0, 0.15]"};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ // Don't inherit, as it's easier for the main compat
+ class CUP_nM1025_SOV_Base: CUP_nHMMWV_Base {
+ class EGVAR(interaction,anims) {
+ class hide_jerrycans {
+ positions[] = {"(_target selectionPosition 'vhc_jerrycans') vectorAdd [0, 0, 0.15]"};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class hide_rear_rack_content {
+ positions[] = {"_target selectionPosition ['vhc_rear_rack_content', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ class CUP_ECVHMMWV_Base: Car_F {
+ class EGVAR(interaction,anims) {
+ class hide_jerrycans {
+ positions[] = {"(_target selectionPosition ['vhc_rear_trunk_door', 'FireGeometry', 'AveragePoint']) vectorAdd [-0.85, -0.22, -0.1]"};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
};
diff --git a/addons/compat_cup_weapons/compat_cup_weapons_csw/stringtable.xml b/addons/compat_cup_weapons/compat_cup_weapons_csw/stringtable.xml
index 89b025d647..86e56ee3d9 100644
--- a/addons/compat_cup_weapons/compat_cup_weapons_csw/stringtable.xml
+++ b/addons/compat_cup_weapons/compat_cup_weapons_csw/stringtable.xml
@@ -10,6 +10,7 @@
[CSW] Cinta de AGS30
[CSW] Nastro AGS30
[CSW] Cinto de AGS30
+ [CSW] Ceinture AGS30
[CSW] MK19 Belt
@@ -20,6 +21,7 @@
[CSW] Cinta de MK19
[CSW] Nastro MK19
[CSW] Cinto de MK19
+ [CSW] Ceinture MK19
[CSW] TOW Tube
@@ -30,6 +32,7 @@
[CSW] Tubo de TOW
[CSW] Tubo TOW
[CSW] Tubo de TOW
+ [CSW] Tube TOW
[CSW] TOW2 Tube
@@ -40,6 +43,7 @@
[CSW] Tubo de TOW2
[CSW] Tubo TOW2
[CSW] Tubo de TOW2
+ [CSW] Tube TOW2
[CSW] PG-9 Round
@@ -50,6 +54,7 @@
[CSW] Carga de PG-9
[CSW] Razzo PG-9
[CSW] Cartucho PG-9
+ [CSW] Projectile PG-9
[CSW] OG-9 Round
@@ -60,6 +65,7 @@
[CSW] Carga de OG-9
[CSW] Razzo OG-9
[CSW] Cartucho OG-9
+ [CSW] Projectile OG-9.
[CSW] M1 HE
diff --git a/addons/compat_gm/CfgVehicles.hpp b/addons/compat_gm/CfgVehicles.hpp
index 6d03465cd7..d470e8a615 100644
--- a/addons/compat_gm/CfgVehicles.hpp
+++ b/addons/compat_gm/CfgVehicles.hpp
@@ -81,15 +81,242 @@ class CfgVehicles {
class gm_brdm2_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 290;
+
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_01', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ };
+ class AmmoBox_02_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_02', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ };
+ class AmmoBox_03_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_03', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ };
+ };
+ };
+ class gm_brdm2um_base: gm_brdm2_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide: AmmoBox_01_unhide {
+ positions[] = {{-0.1, -1.9, -0.5}};
+ };
+ class AmmoBox_02_unhide: AmmoBox_02_unhide {
+ positions[] = {{-0.55, -0.35, -0.35}};
+ };
+ class AmmoBox_03_unhide: AmmoBox_03_unhide {
+ positions[] = {{0.3, -1.85, -0.5}};
+ };
+ };
};
class gm_btr60_base: gm_wheeled_APC_base {
EGVAR(refuel,fuelCapacity) = 290;
EGVAR(cookoff,cookoffSelections)[] = {"commanderturret_hatch"};
+
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_01', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_02_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_02', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_03_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_03', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_04_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_04', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_05_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_05', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_06_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_06', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_07_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['ammobox_07', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ };
+ };
+ };
+
+ class gm_ural375d_base: gm_wheeled_truck_base {
+ EGVAR(refuel,fuelCapacity) = 360;
+
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ positions[] = {{-0.55, 1.83, 0.7}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 2.5;
+ };
+ class AmmoBox_02_unhide {
+ phase = 0;
+ positions[] = {{0, 1.83, 0.7}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 3;
+ };
+ class AmmoBox_03_unhide {
+ phase = 0;
+ positions[] = {{0.55, 1.83, 0.7}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 2.5;
+ };
+ class AmmoBox_04_unhide {
+ phase = 0;
+ positions[] = {{-0.45, 1.83, 0.7}};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ distance = 2.5;
+ };
+ };
+ };
+ class gm_ural375d_mlrs_base: gm_ural375d_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide: AmmoBox_01_unhide {
+ positions[] = {{-0.55, 2, 0.5}};
+ };
+ class AmmoBox_02_unhide: AmmoBox_02_unhide {
+ positions[] = {{0, 2, 0.5}};
+ };
+ class AmmoBox_03_unhide: AmmoBox_03_unhide {
+ positions[] = {{0.55, 2, 0.5}};
+ };
+ class AmmoBox_04_unhide: AmmoBox_04_unhide {
+ positions[] = {{-0.45, 2, 0.5}};
+ };
+ };
+ };
+ class gm_ural375d_medic_base: gm_ural375d_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide: AmmoBox_01_unhide {
+ positions[] = {{-0.55, 2, 0.7}};
+ };
+ class AmmoBox_02_unhide: AmmoBox_02_unhide {
+ positions[] = {{0, 2, 0.7}};
+ };
+ class AmmoBox_03_unhide: AmmoBox_03_unhide {
+ positions[] = {{0.55, 2, 0.7}};
+ };
+ class AmmoBox_04_unhide: AmmoBox_04_unhide {
+ positions[] = {{-0.45, 2, 0.7}};
+ };
+ };
};
class gm_ural4320_base: gm_wheeled_truck_base {
EGVAR(refuel,fuelCapacity) = 360;
+
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ positions[] = {{-0.55, 1.47, 0.7}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 2.5;
+ };
+ class AmmoBox_02_unhide {
+ phase = 0;
+ positions[] = {{0, 1.47, 0.7}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 3;
+ };
+ class AmmoBox_03_unhide {
+ phase = 0;
+ positions[] = {{0.55, 1.47, 0.7}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 2.5;
+ };
+ class AmmoBox_04_unhide {
+ phase = 0;
+ positions[] = {{-0.45, 1.47, 0.7}};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ distance = 2.5;
+ };
+ };
+ };
+ class gm_ural4320_repair_base: gm_ural4320_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide: AmmoBox_01_unhide {
+ positions[] = {{-0.55, 1.62, 0.7}};
+ };
+ class AmmoBox_02_unhide: AmmoBox_02_unhide {
+ positions[] = {{0, 1.62, 0.7}};
+ };
+ class AmmoBox_03_unhide: AmmoBox_03_unhide {
+ positions[] = {{0.55, 1.62, 0.7}};
+ };
+ class AmmoBox_04_unhide: AmmoBox_04_unhide {
+ positions[] = {{-0.45, 1.62, 0.7}};
+ };
+ };
+ };
+ class gm_ural44202_base: gm_ural4320_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide: AmmoBox_01_unhide {
+ positions[] = {{-0.55, 1.37, 0.7}};
+ };
+ class AmmoBox_02_unhide: AmmoBox_02_unhide {
+ positions[] = {{0, 1.37, 0.7}};
+ };
+ class AmmoBox_03_unhide: AmmoBox_03_unhide {
+ positions[] = {{0.55, 1.37, 0.7}};
+ };
+ class AmmoBox_04_unhide: AmmoBox_04_unhide {
+ positions[] = {{-0.45, 1.37, 0.7}};
+ };
+ };
};
class gm_ural4320_reammo_base: gm_ural4320_base {
@@ -190,9 +417,103 @@ class CfgVehicles {
EGVAR(refuel,fuelCapacity) = 460;
EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch","commanderturret_hatch"};
};
+ class gm_bmp1sp2_base: gm_bmp1_base {
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ positions[] = {{-1.2, -2.52, -1.2}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_02_unhide {
+ phase = 0;
+ positions[] = {{-1.3, -2, -1.2}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_03_unhide {
+ phase = 0;
+ positions[] = {{-1.35, -1.43, -1.2}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_04_unhide {
+ phase = 0;
+ positions[] = {{1.2, -2.52, -1.2}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_05_unhide {
+ phase = 0;
+ positions[] = {{1.3, -2, -1.2}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_06_unhide {
+ phase = 0;
+ positions[] = {{1.35, -1.43, -1.2}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_07_unhide {
+ phase = 0;
+ positions[] = {{-1.45, 0.1, -1.3}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_08_unhide {
+ phase = 0;
+ positions[] = {{-1.45, 2, -1.3}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ class AmmoBox_09_unhide {
+ phase = 0;
+ positions[] = {{1.45, 2, -1.3}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ };
+ };
+ };
class gm_pt76_base: gm_tracked_Tank_base {
EGVAR(refuel,fuelCapacity) = 250;
+
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ positions[] = {{0.08, -1.75, -1}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 2.5;
+ };
+ class AmmoBox_02_unhide {
+ phase = 0;
+ positions[] = {{0.08, -1.38, -1}};
+ items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"};
+ name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47";
+ distance = 2.5;
+ };
+ class AmmoBox_03_unhide {
+ phase = 0;
+ positions[] = {{0.08, -2.15, -1}};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ distance = 2.5;
+ };
+ };
};
class gm_t55_base: gm_tracked_Tank_base {
@@ -204,6 +525,21 @@ class CfgVehicles {
EGVAR(refuel,fuelCapacity) = 812;
};
+ class gm_tracked_Artillery_base;
+ class gm_2s1_base: gm_tracked_Artillery_base {
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, -1.3, 0] vectorAdd ([[0, -1.1, -0.35], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ distance = 2.5;
+ };
+ };
+ };
+
// WEST
class gm_Leopard1_base;
class gm_Leopard1a0_base: gm_Leopard1_base {
@@ -211,6 +547,27 @@ class CfgVehicles {
EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch_1","commanderturret_hatch"};
};
+ class gm_Leopard1a1_base: gm_Leopard1a0_base {
+ class EGVAR(interaction,anims) {
+ class AmmoBox_01_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, -0.6, 0] vectorAdd ([[0.7, -2, -0.6], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ };
+ class AmmoBox_02_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, -0.6, 0] vectorAdd ([[-0.3, -1.95, -0.6], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"gm_AmmoBox_wood_04_empty"};
+ name = "$STR_DN_gm_AmmoBox_wood_04_base";
+ text = "$STR_DN_gm_AmmoBox_wood_04_base";
+ };
+ };
+ };
+
class gm_Gepard_base: gm_Leopard1_base {
EGVAR(refuel,fuelCapacity) = 985;
};
@@ -257,42 +614,39 @@ class CfgVehicles {
EGVAR(refuel,fuelCapacity) = 3700;
EGVAR(fastroping,enabled) = 0;
- // TODO: stringtables
class UserActions {
- class openDoor_L {
- displayNameDefault = "Open left Door";
- displayName = "Open left Door";
- position = "";
- radius = 2.7;
- onlyForPlayer = 1;
- condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
- statement = "this animateDoor ['door_2_1_source',1]";
- };
-
- class openDoor_R: openDoor_L {
- displayNameDefault = "Open right Door";
- displayName = "Open right Door";
- condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
- statement = "this animateDoor ['door_2_2_source',1]";
- };
-
- class closeDoor_L {
- displayNameDefault = "Close left Door";
- displayName = "Close left Door";
- position = "";
- radius = 2.7;
- onlyForPlayer = 1;
- condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
- statement = "this animateDoor ['door_2_1_source',0]";
- };
-
- class closeDoor_R: closeDoor_L {
- displayNameDefault = "Close right Door";
- displayName = "Close right Door";
- condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])});
- statement = "this animateDoor ['door_2_2_source',0]";
- };
+ class openDoor_L {
+ displayNameDefault = "$STR_a3_cfgvehicles_useractions_openldoor0";
+ displayName = "$STR_a3_cfgvehicles_useractions_openldoor0";
+ position = "";
+ radius = 2.7;
+ onlyForPlayer = 1;
+ condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
+ statement = "this animateDoor ['door_2_1_source',1]";
};
+ class openDoor_R: openDoor_L {
+ displayNameDefault = "$STR_a3_cfgvehicles_useractions_openrdoor0";
+ displayName = "$STR_a3_cfgvehicles_useractions_openrdoor0";
+ condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
+ statement = "this animateDoor ['door_2_2_source',1]";
+ };
+
+ class closeDoor_L {
+ displayNameDefault = "$STR_a3_cfgvehicles_useractions_closeldoor0";
+ displayName = "$STR_a3_cfgvehicles_useractions_closeldoor0";
+ position = "";
+ radius = 2.7;
+ onlyForPlayer = 1;
+ condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
+ statement = "this animateDoor ['door_2_1_source',0]";
+ };
+ class closeDoor_R: closeDoor_L {
+ displayNameDefault = "$STR_a3_cfgvehicles_useractions_closerdoor0";
+ displayName = "$STR_a3_cfgvehicles_useractions_closerdoor0";
+ condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])});
+ statement = "this animateDoor ['door_2_2_source',0]";
+ };
+ };
};
class gm_bo105p1m_vbh_base;
class gm_bo105p1m_vbh_swooper_base: gm_bo105p1m_vbh_base {
diff --git a/addons/compat_gm/compat_gm_refuel/CfgVehicles.hpp b/addons/compat_gm/compat_gm_refuel/CfgVehicles.hpp
new file mode 100644
index 0000000000..aa51d46979
--- /dev/null
+++ b/addons/compat_gm/compat_gm_refuel/CfgVehicles.hpp
@@ -0,0 +1,336 @@
+class CfgVehicles {
+ class gm_typ2_base;
+ class gm_typ251_base: gm_typ2_base {
+ class EGVAR(interaction,anims) {
+ class canister_01_unhide {
+ phase = 0;
+ positions[] = {{-0.55, -0.17, 0.4}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class canister_02_unhide {
+ phase = 0;
+ positions[] = {{-0.55, -0.65, 0.4}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class gm_typ253_base: gm_typ2_base {
+ class EGVAR(interaction,anims) {
+ class canister_01_unhide {
+ phase = 0;
+ positions[] = {{-0.55, -0.19, 0.4}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class canister_02_unhide {
+ phase = 0;
+ positions[] = {{-0.55, -0.68, 0.4}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ class gm_wheeled_truck_base;
+ class gm_ural375d_base: gm_wheeled_truck_base {
+ class EGVAR(interaction,anims) {
+ class fuelcan_1_1_unhide {
+ phase = 0;
+ positions[] = {{-0.95, 3.15, -0.45}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class fuelcan_1_2_unhide {
+ phase = 0;
+ positions[] = {{0.9, 3.15, -0.45}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class gm_ural375d_mlrs_base: gm_ural375d_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
+ positions[] = {{-0.95, 3.35, -0.55}};
+ };
+ class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
+ positions[] = {{0.9, 3.35, -0.55}};
+ };
+ };
+ };
+ class gm_ural375d_medic_base: gm_ural375d_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
+ positions[] = {{-0.95, 3.35, -0.45}};
+ };
+ class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
+ positions[] = {{0.9, 3.35, -0.45}};
+ };
+ };
+ };
+
+ class gm_ural4320_base: gm_wheeled_truck_base {
+ class EGVAR(interaction,anims) {
+ class fuelcan_1_1_unhide {
+ phase = 0;
+ positions[] = {{-0.9, 3.1, -0.4}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class fuelcan_1_2_unhide {
+ phase = 0;
+ positions[] = {{0.9, 3.1, -0.4}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class gm_ural4320_repair_base: gm_ural4320_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
+ positions[] = {{-0.9, 3.25, -0.4}};
+ };
+ class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
+ positions[] = {{0.9, 3.25, -0.4}};
+ };
+ };
+ };
+ class gm_ural44202_base: gm_ural4320_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class fuelcan_1_1_unhide: fuelcan_1_1_unhide {
+ positions[] = {{-0.9, 3, -0.4}};
+ };
+ class fuelcan_1_2_unhide: fuelcan_1_2_unhide {
+ positions[] = {{0.9, 3, -0.4}};
+ };
+ };
+ };
+
+ class gm_wheeled_APC_base;
+ class gm_brdm2_base: gm_wheeled_APC_base {
+ class EGVAR(interaction,anims) {
+ class FuelCanister_01_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_01', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_02_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_02', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_03_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_03', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class gm_brdm2um_base: gm_brdm2_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class FuelCanister_01_unhide: FuelCanister_01_unhide {
+ positions[] = {{0.87, -3, -1.2}};
+ };
+ class FuelCanister_02_unhide: FuelCanister_02_unhide {
+ positions[] = {{-0.87, -3, -1.2}};
+ };
+ class FuelCanister_03_unhide: FuelCanister_03_unhide {
+ positions[] = {{-0.4, -1.85, -0.5}};
+ };
+ };
+ };
+
+ class gm_btr60_base: gm_wheeled_APC_base {
+ class EGVAR(interaction,anims) {
+ class FuelCanister_01_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_01', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_02_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_02', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_03_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_03', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_04_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_04', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_05_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_05', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_06_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['fuelcanister_06', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class gm_btr60pa_base: gm_btr60_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class FuelCanister_05_unhide: FuelCanister_05_unhide {
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ class FuelCanister_06_unhide: FuelCanister_06_unhide {
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ };
+ };
+ class gm_btr60pb_base: gm_btr60_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class FuelCanister_03_unhide: FuelCanister_03_unhide {
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ class FuelCanister_04_unhide: FuelCanister_04_unhide {
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ };
+ };
+ class gm_btr60pu12_base: gm_btr60_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class FuelCanister_03_unhide: FuelCanister_03_unhide {
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ class FuelCanister_04_unhide: FuelCanister_04_unhide {
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ };
+ };
+ };
+
+ class gm_bmp1_base;
+ class gm_bmp1sp2_base: gm_bmp1_base {
+ class EGVAR(interaction,anims) {
+ class FuelCanister_01_unhide {
+ phase = 0;
+ positions[] = {{-1.2, -2.52, -1.2}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_02_unhide {
+ phase = 0;
+ positions[] = {{1.2, -2.52, -1.2}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ class gm_zsu234_base;
+ class gm_zsu234v1_base: gm_zsu234_base {
+ class EGVAR(interaction,anims) {
+ class FuelCanister_01_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, 0.2, 0] vectorAdd ([[-0.85, -2.2, -0.9], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_02_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, 0.2, 0] vectorAdd ([[0.7, -2.25, -0.85], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_03_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, 0.2, 0] vectorAdd ([[0.92, -2.25, -0.85], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ class gm_tracked_Tank_base;
+ class gm_pt76_base: gm_tracked_Tank_base {
+ class EGVAR(interaction,anims) {
+ class FuelTank_01_unhide {
+ phase = 0;
+ positions[] = {{-1, -2.85, -1}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelTank_02_unhide {
+ phase = 0;
+ positions[] = {{1, -2.85, -1}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ class gm_Leopard1a0_base;
+ class gm_Leopard1a1_base: gm_Leopard1a0_base {
+ class EGVAR(interaction,anims) {
+ class FuelCanister_01_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, -0.6, 0] vectorAdd ([[0.25, -1.9, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ distance = 2.5;
+ };
+ class FuelCanister_02_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, -0.6, 0] vectorAdd ([[-0.8, -1.65, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ class FuelCanister_03_unhide {
+ phase = 0;
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, -0.6, 0] vectorAdd ([[0.8, -1.8, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+};
diff --git a/addons/compat_gm/compat_gm_refuel/config.cpp b/addons/compat_gm/compat_gm_refuel/config.cpp
index 05688eff70..6becabe70a 100644
--- a/addons/compat_gm/compat_gm_refuel/config.cpp
+++ b/addons/compat_gm/compat_gm_refuel/config.cpp
@@ -21,3 +21,4 @@ class CfgPatches {
};
#include "CfgEventHandlers.hpp"
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_gm/compat_gm_repair/CfgVehicles.hpp b/addons/compat_gm/compat_gm_repair/CfgVehicles.hpp
new file mode 100644
index 0000000000..12f9253bba
--- /dev/null
+++ b/addons/compat_gm/compat_gm_repair/CfgVehicles.hpp
@@ -0,0 +1,100 @@
+class CfgVehicles {
+ class gm_wheeled_car_base;
+ class gm_uaz469_base: gm_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class spare_wheel_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['spare_wheel', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ class gm_wheeled_APC_base;
+ class gm_brdm2_base: gm_wheeled_APC_base {
+ class EGVAR(interaction,anims) {
+ class SpareWheel_01_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['sparewheel_01', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ distance = 2.5;
+ };
+ class SpareWheel_02_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['sparewheel_02', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class gm_brdm2um_base: gm_brdm2_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class SpareWheel_01_unhide: SpareWheel_01_unhide {
+ positions[] = {{0.2, -0.7, -0.25}};
+ distance = 2;
+ };
+ class SpareWheel_02_unhide: SpareWheel_02_unhide {
+ positions[] = {{0, -1.6, -0.4}};
+ };
+ };
+ };
+
+ class gm_btr60_base: gm_wheeled_APC_base {
+ class EGVAR(interaction,anims) {
+ class SpareWheel_01_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['sparewheel_01', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ distance = 3;
+ };
+ class SpareWheel_02_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['sparewheel_02', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ class SpareWheel_03_unhide {
+ phase = 0;
+ positions[] = {"_target selectionPosition ['sparewheel_03', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ class gm_bmp1_base;
+ class gm_bmp1sp2_base: gm_bmp1_base {
+ class EGVAR(interaction,anims) {
+ class spareTracks_1_1_unhide {
+ phase = 0;
+ positions[] = {"(_target selectionPosition ['door_1_1', 'FireGeometry', 'AveragePoint']) vectorAdd [0, 0, -0.15]"};
+ items[] = {"ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ class spareTracks_1_2_unhide {
+ phase = 0;
+ positions[] = {"(_target selectionPosition ['door_1_2', 'FireGeometry', 'AveragePoint']) vectorAdd [0, 0, -0.15]"};
+ items[] = {"ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ class spareTracks_2_1_unhide {
+ phase = 0;
+ positions[] = {{-1.1, -2.7, -1.3}, {1.1, -2.7, -1.3}};
+ items[] = {"ACE_Track", "ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+};
diff --git a/addons/compat_gm/compat_gm_repair/config.cpp b/addons/compat_gm/compat_gm_repair/config.cpp
new file mode 100644
index 0000000000..6fae9858b4
--- /dev/null
+++ b/addons/compat_gm/compat_gm_repair/config.cpp
@@ -0,0 +1,23 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "gm_core",
+ "ace_repair"
+ };
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_gm/compat_gm_repair/script_component.hpp b/addons/compat_gm/compat_gm_repair/script_component.hpp
new file mode 100644
index 0000000000..1af928486c
--- /dev/null
+++ b/addons/compat_gm/compat_gm_repair/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT repair
+#define SUBCOMPONENT_BEAUTIFIED Repair
+#include "..\script_component.hpp"
diff --git a/addons/compat_gm/compat_gm_trenches/CfgVehicles.hpp b/addons/compat_gm/compat_gm_trenches/CfgVehicles.hpp
new file mode 100644
index 0000000000..b5c32d8be1
--- /dev/null
+++ b/addons/compat_gm/compat_gm_trenches/CfgVehicles.hpp
@@ -0,0 +1,47 @@
+class CfgVehicles {
+ class gm_wheeled_truck_base;
+ class gm_ural375d_base: gm_wheeled_truck_base {
+ class EGVAR(interaction,anims) {
+ class tools_unhide {
+ phase = 0;
+ positions[] = {{0.9, 3.15, -0.5}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class gm_ural375d_mlrs_base: gm_ural375d_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class tools_unhide: tools_unhide {
+ positions[] = {{0.9, 3.35, -0.65}};
+ };
+ };
+ };
+ class gm_ural375d_medic_base: gm_ural375d_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class tools_unhide: tools_unhide {
+ positions[] = {{0.9, 3.35, -0.5}};
+ };
+ };
+ };
+
+ class gm_ural4320_base: gm_wheeled_truck_base {
+ class EGVAR(interaction,anims) {
+ class tools_unhide {
+ phase = 0;
+ positions[] = {{0.93, 2.7, -0.5}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class gm_ural44202_base: gm_ural4320_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class tools_unhide: tools_unhide {
+ positions[] = {{0.9, 2.6, -0.5}};
+ };
+ };
+ };
+};
diff --git a/addons/compat_gm/compat_gm_trenches/config.cpp b/addons/compat_gm/compat_gm_trenches/config.cpp
new file mode 100644
index 0000000000..13c4dd0816
--- /dev/null
+++ b/addons/compat_gm/compat_gm_trenches/config.cpp
@@ -0,0 +1,23 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "gm_core",
+ "ace_trenches"
+ };
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_gm/compat_gm_trenches/script_component.hpp b/addons/compat_gm/compat_gm_trenches/script_component.hpp
new file mode 100644
index 0000000000..10b90eb71e
--- /dev/null
+++ b/addons/compat_gm/compat_gm_trenches/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT trenches
+#define SUBCOMPONENT_BEAUTIFIED Trenches
+#include "..\script_component.hpp"
diff --git a/addons/compat_rf/compat_rf_realisticnames/stringtable.xml b/addons/compat_rf/compat_rf_realisticnames/stringtable.xml
index 03d5003a62..16a6e92789 100644
--- a/addons/compat_rf/compat_rf_realisticnames/stringtable.xml
+++ b/addons/compat_rf/compat_rf_realisticnames/stringtable.xml
@@ -7,6 +7,7 @@
이오텍 MRDS (카키)
EOTech MRDS (Khaki)
EOTech MRDS (Cachi)
+ EOTech MRDS (Khaki)
EOTech MRDS (Tan)
@@ -14,6 +15,7 @@
이오텍 MRDS (황갈)
EOTech MRDS (Hellbraun)
EOTech MRDS (Marroncino)
+ EOTech MRDS (Marron)
C-More Railway (Green, Desert)
@@ -21,6 +23,7 @@
씨모어 레일웨이 (녹색, 사막)
C-More Railway (Grün, Wüste)
C-More Railway (Verde, Deserto)
+ C-More Railway (Vert, Désert)
C-More Railway (Green, Woodland)
@@ -28,6 +31,7 @@
씨모어 레일웨이 (녹색, 수풀 위장)
C-More Railway (Grün, Grünes Tarnmuster)
C-More Railway (Verde, Boschivo)
+ C-More Railway (Vert, Woodland)
C-More Railway (Red, Desert)
@@ -35,6 +39,7 @@
씨모어 레일웨이 (빨강, 사막)
C-More Railway (Rot, Wüste)
C-More Railway (Rosso, Desert)
+ C-More Railway (Rouge, Désert)
C-More Railway (Red, Woodland)
@@ -42,6 +47,7 @@
씨모어 레일웨이 (빨강, 수풀)
C-More Railway (Rot, Grünes Tarnmuster)
C-More Railway (Rosso, Boschivo)
+ C-More Railway (Rouge, Woodland)
Aimpoint Micro R-1
@@ -49,6 +55,7 @@
에임포인트 마이크로 R-1
Aimpoint Micro R-1
Aimpoint Micro R-1
+ Aimpoint Micro R-1
Vortex Spitfire Prism
@@ -56,6 +63,7 @@
버텍스 스핏파이어 프리즘
Vortex Spitfire Prism
Vortex Spitfire Prism
+ Vortex Spitfire Prism
Vortex Spitfire Prism (Tan)
@@ -63,6 +71,7 @@
버텍스 스핏파이어 프리즘 (황갈)
Vortex Spitfire Prism (Hellbraun)
Vortex Spitfire Prism (Marroncino)
+ Vortex Spitfire Prism (Marron)
Vortex Spitfire Prism (Khaki)
@@ -70,6 +79,7 @@
버텍스 스핏파이어 프리즘 (카키)
Vortex Spitfire Prism (Khaki)
Vortex Spitfire Prism (Cachi)
+ Vortex Spitfire Prism (Khaki)
Vortex Spitfire Prism (Pistol)
@@ -77,6 +87,7 @@
버텍스 스핏파이어 프리즘 (권총용)
Vortex Spitfire Prism (Pistole)
Vortex Spitfire Prism (Pistola)
+ Vortex Spitfire Prism (Pistol)
Glock 19X
@@ -84,6 +95,7 @@
글록 19X
Glock 19X
Glock 19X
+ Glock 19X
Glock 19X (Khaki)
@@ -91,6 +103,7 @@
글록 19X (카키)
Glock 19X (Khaki)
Glock 19X (Cachi)
+ Glock 19X (Khaki)
Glock 19X (Tan)
@@ -98,6 +111,7 @@
글록 19X (황갈)
Glock 19X (Hellbraun)
Glock 19X (Marroncino)
+ Glock 19X (Marron)
Glock 19X Auto
@@ -105,6 +119,7 @@
글록 19X 기관권총
Glock 19X Auto
Glock 19X Auto
+ Glock 19X Auto
Glock 19X Auto (Khaki)
@@ -112,6 +127,7 @@
글록 19X 기관권총 (카키)
Glock 19X Auto (Khaki)
Glock 19X Auto (Cachi)
+ Glock 19X Auto (Khaki)
Glock 19X Auto (Tan)
@@ -119,6 +135,7 @@
글록 19X 기관권총 (황갈)
Glock 19X Auto (Hellbraun)
Glock 19X Auto (Marroncino)
+ Glock 19X Auto (Marron)
Desert Eagle Mark XIX L5
@@ -126,6 +143,7 @@
데저트 이글 마크 XIX L5
Desert Eagle Mark XIX L5
Desert Eagle Mark XIX L5
+ Desert Eagle Mark XIX L5
Desert Eagle Mark XIX L5 (Classic)
@@ -133,6 +151,7 @@
데저트 이글 마크 XIX L5 (클래식)
Desert Eagle Mark XIX L5 (Klassisch)
Desert Eagle Mark XIX L5 (Classico)
+ Desert Eagle Mark XIX L5 (Classique)
Desert Eagle Mark XIX L5 (Bronze)
@@ -140,6 +159,7 @@
데저트 이글 마크 XIX L5 (브론즈)
Desert Eagle Mark XIX L5 (Bronze)
Desert Eagle Mark XIX L5 (Bronzo)
+ Desert Eagle Mark XIX L5 (Bronze)
Desert Eagle Mark XIX L5 (Copper)
@@ -147,6 +167,7 @@
데저트 이글 마크 XIX L5 (구리)
Desert Eagle Mark XIX L5 (Kupfer)
Desert Eagle Mark XIX L5 (Rame)
+ Desert Eagle Mark XIX L5 (Cuivre)
Desert Eagle Mark XIX L5 (Gold)
@@ -154,6 +175,7 @@
데저트 이글 마크 XIX L5 (금색)
Desert Eagle Mark XIX L5 (Gold)
Desert Eagle Mark XIX L5 (Oro)
+ Desert Eagle Mark XIX L5 (Or)
HERA H6 (Tan)
@@ -161,6 +183,7 @@
헤라 H6 (황갈)
HERA H6 (Hellbraun)
HERA H6 (Marroncino)
+ HERA H6 (Marron)
HERA H6 (Olive)
@@ -168,6 +191,7 @@
헤라 H6 (올리브)
HERA H6 (Olivgrün)
HERA H6 (Oliva)
+ HERA H6 (Olive)
HERA H6 (Black)
@@ -175,6 +199,7 @@
헤라 H6 (검정)
HERA H6 (Schwarz)
HERA H6 (Nero)
+ HERA H6 (Noir)
HERA H6 (Digital)
@@ -182,6 +207,7 @@
헤라 H6 (AAF 디지털)
HERA H6 (Digital)
HERA H6 (Digitale)
+ HERA H6 (Digital)
HERA H6 (Gold)
@@ -189,6 +215,7 @@
헤라 H6 (금색)
HERA H6 (Gold)
HERA H6 (Oro)
+ HERA H6 (Or)
VS-121 (Black)
@@ -196,6 +223,7 @@
VS-121 (검정)
VS-121 (Schwarz)
VS-121 (Nero)
+ VS-121 (Noir)
VS-121 (Tan)
@@ -203,6 +231,7 @@
VS-121 (황갈)
VS-121 (Hellbraun)
VS-121 (Marroncino)
+ VS-121 (Marron)
Vector SMG (Black)
@@ -210,6 +239,7 @@
벡터 SMG (검정)
Vector SMG (Schwarz)
Vector SMG (Nero)
+ Vector SMG (Noir)
ASh-12 (Black)
@@ -217,6 +247,7 @@
ASh-12 (검정)
ASh-12 (Schwarz)
ASh-12 (Nero)
+ ASh-12 (Noir)
ASh-12 (Desert)
@@ -224,6 +255,7 @@
ASh-12 (사막)
ASh-12 (Wüste)
ASh-12 (Deserto)
+ ASh-12 (Désert )
ASh-12 (Urban)
@@ -231,6 +263,7 @@
ASh-12 (도심)
ASh-12 (Urban)
ASh-12 (Urbano)
+ ASh-12 (Urbain)
ASh-12 (Woodland)
@@ -238,6 +271,7 @@
ASh-12 (수풀)
ASh-12 (Grünes Tarnmuster)
ASh-12 (Boschivo)
+ ASh-12 (Woodland)
ASh-12 GL (Black)
@@ -245,6 +279,7 @@
ASh-12 GL (검정)
ASh-12 GL (Schwarz)
ASh-12 GL (Nero)
+ ASh-12 GL (Noir)
ASh-12 GL (Desert)
@@ -252,6 +287,7 @@
ASh-12 GL (사막)
ASh-12 GL (Wüste)
ASh-12 GL (Deserto)
+ ASh-12 GL (Désert)
ASh-12 GL (Urban)
@@ -259,6 +295,7 @@
ASh-12 GL (도심)
ASh-12 GL (Urban)
ASh-12 GL (Urbano)
+ ASh-12 GL (Urbain)
ASh-12 GL (Woodland)
@@ -266,6 +303,7 @@
ASh-12 GL (수풀)
ASh-12 GL (Grünes Tarnmuster)
ASh-12 GL (Boschivo)
+ ASh-12 GL (Woodland)
ASh-12 LR (Black)
@@ -273,6 +311,7 @@
ASh-12 LR (검정)
ASh-12 LR (Schwarz)
ASh-12 LR (Nero)
+ ASh-12 LR (Noir)
ASh-12 LR (Desert)
@@ -280,6 +319,7 @@
ASh-12 LR (사막)
ASh-12 LR (Wüste)
ASh-12 LR (Deserto)
+ ASh-12 LR (Désert)
ASh-12 LR (Urban)
@@ -287,6 +327,7 @@
ASh-12 LR (도심)
ASh-12 LR (Urban)
ASh-12 LR (Urbano)
+ ASh-12 LR (Urbain)
ASh-12 LR (Woodland)
@@ -294,6 +335,7 @@
ASh-12 LR (수풀)
ASh-12 LR (Grünes Tarnmuster)
ASh-12 LR (Boschivo)
+ ASh-12 LR (Woodland)
AW159 Wildcat ASW
@@ -301,6 +343,7 @@
AW159 와일드캣 ASW
AW159 Wildcat ASW
AW159 Wildcat ASW
+ AW159 Wildcat ASW
AW159 Wildcat ASW (Unarmed)
@@ -308,6 +351,7 @@
AW159 와일드캣 ASW (비무장)
AW159 Wildcat ASW (Unbewaffnet)
AW159 Wildcat ASW (Disarmato)
+ AW159 Wildcat ASW (non armé)
H225 Super Puma (Transport)
@@ -315,6 +359,7 @@
H225 슈퍼 퓨마 (비무장)
H225 Super Puma (Transport)
H225 Super Puma (Trasporto)
+ H225 Super Puma (Transport )
H225 Super Puma (Civilian)
@@ -322,6 +367,7 @@
H225 슈퍼 퓨마 (비무장)
H225 Super Puma (Zivil)
H225 Super Puma (Civile)
+ H225 Super Puma (Civil)
H215 Super Puma (Transport)
@@ -329,6 +375,7 @@
H215 슈퍼 퓨마 (비무장)
H215 Super Puma (Transport)
H215 Super Puma (Trasporto)
+ H215 Super Puma (Transport)
H215 Super Puma (Civilian)
@@ -336,6 +383,7 @@
H215 슈퍼 퓨마 (비무장)
H215 Super Puma (Zivil)
H215 Super Puma (Civile)
+ H215 Super Puma (Civil)
H215 Super Puma (Unarmed)
@@ -343,6 +391,7 @@
H215 슈퍼 퓨마 (비무장)
H215 Super Puma (Unbewaffnet)
H215 Super Puma (Disarmato)
+ H215 Super Puma (non armé)
H225M Super Cougar SOCAT
@@ -350,6 +399,7 @@
H225M 슈퍼 쿠거 SOCAT
H225M Super Cougar SOCAT
H225M Super Cougar SOCAT
+ H225M Super Cougar SOCAT
H225M Super Cougar SOCAT
@@ -357,6 +407,7 @@
H225M 슈퍼 쿠거 SOCAT
H225M Super Cougar SOCAT
H225M Super Cougar SOCAT
+ H225M Super Cougar SOCAT
H225M Super Cougar
@@ -364,6 +415,7 @@
H225M 슈퍼 쿠거
H225M Super Cougar
H225M Super Cougar
+ H225M Super Cougar
H225 Super Puma SAR
@@ -371,6 +423,7 @@
H225 슈퍼 퓨마 SAR
H225 Super Puma SAR
H225 Super Puma SAR
+ H225 Super Puma SAR
H225M Super Cougar (Unarmed)
@@ -378,6 +431,7 @@
H225M Super Cougar (Unbewaffnet)
H225M Super Cougar (Disarmato)
H225M 슈퍼 쿠거 (비무장)
+ H225M Super Cougar (Non armé)
HEMTT Fire Truck
@@ -398,6 +452,7 @@
타이푼 급수
Typhoon Water
Typhoon Acqua
+ Typhoon Water
Ram 1500
@@ -405,6 +460,7 @@
램 1500
Ram 1500
Ram 1500
+ Ram 1500
Ram 1500 (Fuel)
@@ -412,6 +468,7 @@
램 1500 (연료)
Ram 1500 (Treibstoff)
Ram 1500 (Carburante)
+ Ram 1500 (Carburant)
Ram 1500 (Services)
@@ -419,6 +476,7 @@
램 1500 (서비스)
Ram 1500 (Pannenhilfe)
Ram 1500 (Servizi)
+ Ram 1500 (Dépannage)
Ram 1500 (Repair)
@@ -426,6 +484,7 @@
램 1500 (정비)
Ram 1500 (Instandsetzung)
Ram 1500 (Riparazioni)
+ Ram 1500 (Réparation)
Ram 1500 (Comms)
@@ -433,6 +492,7 @@
램 1500 (통신)
Ram 1500 (Kommunikation)
Ram 1500 (Comunicazioni)
+ Ram 1500 (Communication)
Ram 1500 (HMG)
@@ -440,6 +500,7 @@
램 1500 (중기관총)
Ram 1500 (HMG)
Ram 1500 (HMG)
+ Ram 1500 (HMG)
Ram 1500 (MMG)
@@ -447,6 +508,7 @@
램 1500 (중형기관총)
Ram 1500 (MMG)
Ram 1500 (MMG)
+ Ram 1500 (MMG)
Ram 1500 (MRL)
@@ -454,6 +516,7 @@
램 1500 (다연장로켓)
Ram 1500 (MRL)
Ram 1500 (MRL)
+ Ram 1500 (MRL)
Ram 1500 (AA)
@@ -461,6 +524,7 @@
램 1500 (대공)
Ram 1500 (AA)
Ram 1500 (AA)
+ Ram 1500 (AA)
Ram 1500 (Covered)
@@ -468,6 +532,7 @@
램 1500 (커버)
Ram 1500 (Abgedeckt)
Ram 1500 (Coperto)
+ Ram 1500 (couvert)
Ram 1500 (Water)
@@ -475,6 +540,7 @@
램 1500 (급수)
Ram 1500 (Wasser)
Ram 1500 (Acqua)
+ Ram 1500 (eau)
RSG60
@@ -482,6 +548,7 @@
RSG60
RSG60
RSG60
+ RSG60
AMOS Container
@@ -489,6 +556,7 @@
AMOS 컨테이너
AMOS Container
AMOS Container
+ AMOS Container
Drone40
@@ -496,6 +564,7 @@
드론40
Drone40
Drone40
+ Drone40
Drone40 Scout
@@ -503,6 +572,7 @@
드론40 정찰
Drone40 Scout
Drone40 Scout
+ Drone40 Scout
Drone40 HE
@@ -510,6 +580,7 @@
드론40 고폭
Drone40 HE
Drone40 HE
+ Drone40 HE
Drone40 Smoke (White)
@@ -517,6 +588,7 @@
드론40 연막 (백색)
Drone40 Smoke (Weiß)
Drone40 Smoke (Bianco)
+ Drone40 Fumée (Blanc)
Drone40 Smoke (Blue)
@@ -524,6 +596,7 @@
드론40 연막 (청색)
Drone40 Smoke (Blau)
Drone40 Smoke (Blu)
+ Drone40 Fumée (Bleu)
Drone40 Smoke (Red)
@@ -531,6 +604,7 @@
드론40 연막 (적색)
Drone40 Smoke (Rot)
Drone40 Smoke (Rosso)
+ Drone40 Fumée (Rouge)
Drone40 Smoke (Green)
@@ -538,6 +612,7 @@
드론40 연막 (녹색)
Drone40 Smoke (Grün)
Drone40 Smoke (Verde)
+ Drone40 Fumée (Vert)
Drone40 Smoke (Orange)
@@ -545,6 +620,7 @@
드론40 연막 (주황색)
Drone40 Smoke (Orange)
Drone40 Smoke (Arancione)
+ Drone40 Fumée (Orange)
diff --git a/addons/compat_rhs_afrf3/CfgVehicles.hpp b/addons/compat_rhs_afrf3/CfgVehicles.hpp
index 1cf5029bc3..2ba6caf56f 100644
--- a/addons/compat_rhs_afrf3/CfgVehicles.hpp
+++ b/addons/compat_rhs_afrf3/CfgVehicles.hpp
@@ -60,6 +60,8 @@ class CfgVehicles {
EGVAR(vehicle_damage,turretFireProb) = 0.7;
EGVAR(vehicle_damage,engineFireProb) = 0.7;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.5;
+
+ class EGVAR(interaction,anims);
};
class rhs_infantry_msv_base;
@@ -156,68 +158,186 @@ class CfgVehicles {
EGVAR(vehicle_damage,engineFireProb) = 0.8;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.8;
EGVAR(vehicle_damage,canHaveFireRing) = 1;
- };
+ };
class rhs_btr60_base: rhs_btr_base {
EGVAR(refuel,fuelCapacity) = 290;
+
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide {
+ positions[] = {{-1.1, 2, -0.3}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l2_unhide {
+ positions[] = {{-1.1, 1.05, -0.3}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l3_unhide {
+ positions[] = {{-1.1, -1.1, -0.3}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r1_unhide {
+ positions[] = {{1.1, 1.93, -0.3}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r2_unhide {
+ positions[] = {{1.1, 0.25, -0.3}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r3_unhide {
+ positions[] = {{1.1, -1.1, -0.3}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ };
};
class rhs_btr70_vmf: rhs_btr_base {
EGVAR(refuel,fuelCapacity) = 350;
+
class ace_viewports {
class view_0 {
camLocation[] = {0.478394, -0.575, -0.145};
camAttach = 90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_1 {
camLocation[] = {-1.38184, -0.575, -0.145};
camAttach = -90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
+ };
+ };
+
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide {
+ positions[] = {{-1.7, 0.55, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l2_unhide {
+ positions[] = {{-1.7, -0.95, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l3_unhide {
+ positions[] = {{-1.7, -1.45, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l4_unhide {
+ positions[] = {{-1.7, -2.7, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r1_unhide {
+ positions[] = {{0.8, 1, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r2_unhide {
+ positions[] = {{0.8, 0.12, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r3_unhide {
+ positions[] = {{0.8, -0.7, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r4_unhide {
+ positions[] = {{0.8, -1.85, -0.4}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
};
};
};
-
class rhs_btr70_msv: rhs_btr70_vmf {};
class rhs_btr80_msv: rhs_btr70_msv {
EGVAR(refuel,fuelCapacity) = 300;
+
class ace_viewports {
class view_0 {
camLocation[] = {0.534424, -0.336914, 0.636819};
camAttach = 45;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_1 {
camLocation[] = {0.760254, -0.459473, 0.526328};
camAttach = 90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_2 {
camLocation[] = {0.770508, -1.21924, 0.526954};
camAttach = 90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_3 {
camLocation[] = {-1.13, -1.2085, 0.490339};
camAttach = -90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_4 {
camLocation[] = {-1.14124, -0.416992, 0.460611};
camAttach = -90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_5 {
camLocation[] = {-0.932983, -0.326172, 0.647666};
camAttach = -45;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
+ };
+ };
+
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.45, 0, 0.25}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.45, -1.68, 0.15}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.45, -2.87, 0.15}};
+ };
+ class crate_l4_unhide: crate_l4_unhide {
+ enabled = 0;
+ };
+ class crate_r1_unhide: crate_r1_unhide {
+ positions[] = {{1.1, 0.97, 0.15}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.1, -1.5, 0.15}};
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ enabled = 0;
+ };
+ class crate_r4_unhide: crate_r4_unhide {
+ enabled = 0;
};
};
};
@@ -226,38 +346,56 @@ class CfgVehicles {
class view_0 {
camLocation[] = {0.589844, -0.314941, 0.449678};
camAttach = 45;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_1 {
camLocation[] = {0.809082, -0.442871, 0.276865};
camAttach = 90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_2 {
camLocation[] = {0.819092, -1.24414, 0.27857};
camAttach = 90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_3 {
camLocation[] = {-1.1012, -1.22461, 0.341089};
camAttach = -90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_4 {
camLocation[] = {-1.11597, -0.458984, 0.307256};
camAttach = -90;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
};
class view_5 {
camLocation[] = {-0.869995, -0.304688, 0.461181};
camAttach = -45;
- compartments[]={"Compartment1"};
- roles[]={"cargo"};
+ compartments[] = {"Compartment1"};
+ roles[] = {"cargo"};
+ };
+ };
+
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.45, 0, 0}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.45, -1.68, 0}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.45, -2.87, 0}};
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ positions[] = {{1.1, 0.97, 0}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.1, -1.5, 0}};
};
};
};
@@ -279,11 +417,289 @@ class CfgVehicles {
EGVAR(vehicle_damage,turretFireProb) = 0.5;
EGVAR(vehicle_damage,engineFireProb) = 0.8;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.5;
+
+ class EGVAR(interaction,anims) {
+ class crate_l1_unhide {
+ positions[] = {{-1.45, 0.5, -0.65}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l2_unhide {
+ positions[] = {{-1.45, -0.2, -0.65}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l3_unhide {
+ positions[] = {{-1.45, -1.2, -0.65}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r1_unhide {
+ positions[] = {{1.45, 0.6, -0.65}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r2_unhide {
+ positions[] = {{1.45, -0.4, -0.65}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r3_unhide {
+ positions[] = {{1.45, -1.2, -0.65}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ };
};
+ class rhs_bmd1_base: rhs_bmd_base {};
+ class rhs_bmd1p: rhs_bmd1_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.45, 0.5, -0.8}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.45, -0.2, -0.8}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.45, -1.2, -0.8}};
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ positions[] = {{1.45, 0.6, -0.8}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.45, -0.4, -0.8}};
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ positions[] = {{1.45, -1.2, -0.8}};
+ };
+ };
+ };
+ class rhs_bmd2_base: rhs_bmd_base {};
+ class rhs_bmd2: rhs_bmd2_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.45, 0.5, -0.8}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.45, -0.2, -0.8}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.45, -1.2, -0.8}};
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ positions[] = {{1.45, 0.6, -0.8}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.45, -0.4, -0.8}};
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ positions[] = {{1.45, -1.2, -0.8}};
+ };
+ };
+ };
+ class rhs_bmd2m: rhs_bmd2 {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.45, 0.5, -0.7}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.45, -0.2, -0.7}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.45, -1.2, -0.7}};
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ positions[] = {{1.45, 0.6, -0.7}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.45, -0.4, -0.7}};
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ positions[] = {{1.45, -1.2, -0.7}};
+ };
+ };
+ };
+
class rhs_bmp1tank_base: Tank_F {
EGVAR(map,vehicleLightColor)[] = {0,1,0,0.1};
EGVAR(refuel,fuelCapacity) = 460;
};
+ class rhs_bmp_base: rhs_bmp1tank_base {
+ EGVAR(vehicle_damage,hullDetonationProb) = 0;
+ EGVAR(vehicle_damage,turretDetonationProb) = 0.2;
+ EGVAR(vehicle_damage,engineDetonationProb) = 0;
+ EGVAR(vehicle_damage,hullFireProb) = 0.8;
+ EGVAR(vehicle_damage,turretFireProb) = 0.5;
+ EGVAR(vehicle_damage,engineFireProb) = 0.8;
+ EGVAR(vehicle_damage,detonationDuringFireProb) = 0.5;
+
+ class EGVAR(interaction,anims) {
+ class crate_l1_unhide {
+ positions[] = {{-1.55, 1.1, -0.55}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l2_unhide {
+ positions[] = {{-1.55, 0.35, -0.55}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_l3_unhide {
+ positions[] = {{-1.55, -0.6, -0.55}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r1_unhide {
+ positions[] = {{1.55, 1.75, -0.55}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r2_unhide {
+ positions[] = {{1.55, -0.25, -0.55}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ class crate_r3_unhide {
+ positions[] = {{1.55, -1, -0.55}};
+ items[] = {"rhs_3Ya40_1_single"};
+ name = "3Ya40-1 Crate";
+ text = "3Ya40-1 Crate";
+ };
+ };
+ };
+ class rhs_bmp1_vdv: rhs_bmp_base {};
+ class rhs_bmp1d_vdv: rhs_bmp1_vdv {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_r3_unhide: crate_r3_unhide {
+ positions[] = {{1.5, -1.2, -0.55}};
+ };
+ };
+ };
+ class rhs_prp3_vdv: rhs_bmp1_vdv {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ enabled = 0;
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ enabled = 0;
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ enabled = 0;
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ enabled = 0;
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ enabled = 0;
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ enabled = 0;
+ };
+ };
+ };
+
+ class rhs_bmp2e_vdv: rhs_bmp1_vdv {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.8, 1.05, -0.55}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.8, 0.35, -0.55}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.8, -0.65, -0.55}};
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ positions[] = {{1.4, 1.7, -0.55}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.4, -0.25, -0.55}};
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ positions[] = {{1.4, -1.05, -0.55}};
+ };
+ };
+ };
+ class rhs_bmp2_vdv: rhs_bmp2e_vdv {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.8, 1.2, -0.55}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.8, 0.5, -0.55}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.8, -0.5, -0.55}};
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ positions[] = {{1.4, 1.85, -0.55}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.4, -0.1, -0.55}};
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ positions[] = {{1.4, -0.9, -0.55}};
+ };
+ };
+ };
+ class rhs_bmp2e_msv: rhs_bmp2e_vdv {};
+ class rhs_Ob_681_2: rhs_bmp2e_msv {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ positions[] = {{-1.8, 1.2, -0.55}};
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ positions[] = {{-1.8, 0.5, -0.55}};
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ positions[] = {{-1.8, -0.5, -0.55}};
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ positions[] = {{1.4, 1.85, -0.55}};
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ positions[] = {{1.4, -0.1, -0.55}};
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ positions[] = {{1.4, -0.9, -0.55}};
+ };
+ };
+ };
+
+ class rhs_brm1k_base: rhs_bmp2e_vdv {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class crate_l1_unhide: crate_l1_unhide {
+ enabled = 0;
+ };
+ class crate_l2_unhide: crate_l2_unhide {
+ enabled = 0;
+ };
+ class crate_l3_unhide: crate_l3_unhide {
+ enabled = 0;
+ };
+ class crate_r1_unhide: crate_l3_unhide {
+ enabled = 0;
+ };
+ class crate_r2_unhide: crate_r2_unhide {
+ enabled = 0;
+ };
+ class crate_r3_unhide: crate_r3_unhide {
+ enabled = 0;
+ };
+ };
+ };
+
class rhs_bmp3tank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 460;
EGVAR(vehicle_damage,hullDetonationProb) = 0.2;
@@ -293,37 +709,39 @@ class CfgVehicles {
EGVAR(vehicle_damage,turretFireProb) = 0.2;
EGVAR(vehicle_damage,engineFireProb) = 0.8;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.5;
+
class ace_viewports {
class view_0 {
camLocation[] = {1.02881, -0.923828, -0.647231};
screenLocation[] = {1.12881, -0.653828, -1.08223};
camAttach = 50;
maxDistance = 0.5;
- roles[]={"cargo"};
+ roles[] = {"cargo"};
};
class view_1 {
camLocation[] = {1.01709, -1.55664, -0.647231};
screenLocation[] = {1.10709, -1.42664, -1.14223};
camAttach = 82;
maxDistance = 0.5;
- roles[]={"cargo"};
+ roles[] = {"cargo"};
};
class view_2 {
camLocation[] = {-0.871094, -1.55762, -0.647231};
screenLocation[] = {-0.981094, -1.42762, -1.13223};
camAttach = 285;
maxDistance = 0.5;
- roles[]={"cargo"};
+ roles[] = {"cargo"};
};
class view_3 {
camLocation[] = {-1.00879, -0.939941, -0.650259};
screenLocation[] = {-0.97879, -0.689941, -1.09526};
camAttach = 310;
maxDistance = 0.5;
- roles[]={"cargo"};
+ roles[] = {"cargo"};
};
};
};
+
class rhs_a3spruttank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 400;
EGVAR(vehicle_damage,hullDetonationProb) = 0.2;
@@ -334,6 +752,7 @@ class CfgVehicles {
EGVAR(vehicle_damage,engineFireProb) = 0.8;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.5;
};
+
class rhs_a3t72tank_base: Tank_F {
EGVAR(refuel,fuelCapacity) = 1200;
EGVAR(vehicle_damage,hullDetonationProb) = 0.8;
@@ -344,15 +763,6 @@ class CfgVehicles {
EGVAR(vehicle_damage,engineFireProb) = 0.5;
EGVAR(vehicle_damage,detonationDuringFireProb) = 0.2;
};
- class rhs_bmp_base: rhs_bmp1tank_base {
- EGVAR(vehicle_damage,hullDetonationProb) = 0;
- EGVAR(vehicle_damage,turretDetonationProb) = 0.2;
- EGVAR(vehicle_damage,engineDetonationProb) = 0;
- EGVAR(vehicle_damage,hullFireProb) = 0.8;
- EGVAR(vehicle_damage,turretFireProb) = 0.5;
- EGVAR(vehicle_damage,engineFireProb) = 0.8;
- EGVAR(vehicle_damage,detonationDuringFireProb) = 0.5;
- };
class rhs_t72bd_tv: rhs_a3t72tank_base {
EGVAR(vehicle_damage,eraHitpoints)[] = {
"era_1_hitpoint", "era_2_hitpoint", "era_3_hitpoint", "era_4_hitpoint", "era_5_hitpoint", "era_6_hitpoint", "era_7_hitpoint",
diff --git a/addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/CfgVehicles.hpp b/addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/CfgVehicles.hpp
index 1acd977b99..6cd2237a6f 100644
--- a/addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/CfgVehicles.hpp
+++ b/addons/compat_rhs_afrf3/compat_rhs_afrf3_repair/CfgVehicles.hpp
@@ -43,7 +43,7 @@ class CfgVehicles {
class rhs_truck: Truck_F {
class EGVAR(interaction,anims) {
class spare_hide {
- selections[] = {"spare"};
+ positions[] = {"_target selectionPosition ['spare', 'ViewGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -54,7 +54,7 @@ class CfgVehicles {
class RHS_Ural_BaseTurret: Truck_F {
class EGVAR(interaction,anims) {
class spare_hide {
- selections[] = {"spare"};
+ positions[] = {"_target selectionPosition ['spare', 'ViewGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -65,7 +65,7 @@ class CfgVehicles {
class rhs_zil131_base: Truck_F {
class EGVAR(interaction,anims) {
class spare_hide {
- selections[] = {"spare"};
+ positions[] = {"_target selectionPosition ['spare', 'ViewGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -77,7 +77,7 @@ class CfgVehicles {
class rhs_kraz255b1_base: rhs_kraz255_base {
class EGVAR(interaction,anims) {
class spare_hide {
- selections[] = {"spare"};
+ positions[] = {"_target selectionPosition ['spare', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -89,7 +89,7 @@ class CfgVehicles {
class rhs_kamaz5350: O_Truck_02_covered_F {
class EGVAR(interaction,anims) {
class spare_hide {
- selections[] = {"spare"};
+ positions[] = {"_target selectionPosition ['spare', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -101,7 +101,7 @@ class CfgVehicles {
class rhs_tigr_base: MRAP_02_base_F {
class EGVAR(interaction,anims) {
class spare_hide {
- selections[] = {"spare"};
+ positions[] = {"_target selectionPosition ['spare', 'ViewGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -113,7 +113,7 @@ class CfgVehicles {
class RHS_UAZ_Base: Offroad_01_base_f {
class EGVAR(interaction,anims) {
class spare_hide {
- selections[] = {"spare"};
+ positions[] = {"_target selectionPosition ['spare', 'ViewGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
diff --git a/addons/compat_rhs_usf3/compat_rhs_usf3_refuel/CfgVehicles.hpp b/addons/compat_rhs_usf3/compat_rhs_usf3_refuel/CfgVehicles.hpp
index 445cab8226..10607ab6b5 100644
--- a/addons/compat_rhs_usf3/compat_rhs_usf3_refuel/CfgVehicles.hpp
+++ b/addons/compat_rhs_usf3/compat_rhs_usf3_refuel/CfgVehicles.hpp
@@ -26,7 +26,7 @@ class CfgVehicles {
};
};
};
- class rhsusf_stryker_m1134_base: rhsusf_stryker_m1132_m2_base {
+ class rhsusf_stryker_m1134_base: rhsusf_stryker_m1126_m2_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class Hide_FCans: Hide_FCans {
positions[] = {{-0.7, -3, -0.7}};
diff --git a/addons/compat_rhs_usf3/compat_rhs_usf3_repair/CfgVehicles.hpp b/addons/compat_rhs_usf3/compat_rhs_usf3_repair/CfgVehicles.hpp
index 26341db1da..91bed1dc5a 100644
--- a/addons/compat_rhs_usf3/compat_rhs_usf3_repair/CfgVehicles.hpp
+++ b/addons/compat_rhs_usf3/compat_rhs_usf3_repair/CfgVehicles.hpp
@@ -60,10 +60,11 @@ class CfgVehicles {
class rhsusf_HEMTT_A4_base: Truck_01_base_F {
class EGVAR(interaction,anims) {
class hide_spare {
- positions[] = {"_target selectionPosition 'sparewheel' vectorAdd [0.6, 0.6, -0.4]"};
+ positions[] = {"_target selectionPosition ['sparewheel', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
+ distance = 2.5;
};
};
};
@@ -72,7 +73,7 @@ class CfgVehicles {
class rhsusf_m1151_base: MRAP_01_base_F {
class EGVAR(interaction,anims) {
class hide_spare {
- positions[] = {"_target selectionPosition 'sparewheel' vectorAdd [-0.465, 0, 0]"};
+ positions[] = {"_target selectionPosition ['sparewheel', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -83,7 +84,7 @@ class CfgVehicles {
class rhsusf_M1165A1_GMV_SAG2_base: rhsusf_m1151_base {
class EGVAR(interaction,anims) {
class hide_spare {
- positions[] = {"_target selectionPosition 'sparewheel_gmv' vectorAdd [0, -0.44, 0]"};
+ positions[] = {"_target selectionPosition ['sparewheel_gmv', 'Geometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -94,7 +95,7 @@ class CfgVehicles {
class rhsusf_rg33_base: MRAP_01_base_F {
class EGVAR(interaction,anims) {
class hide_spare {
- selections[] = {"sparewheel"};
+ positions[] = {"_target selectionPosition ['sparewheel', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -105,7 +106,7 @@ class CfgVehicles {
class rhsusf_M1239_base: MRAP_01_base_F {
class EGVAR(interaction,anims) {
class hide_spare {
- selections[] = {"sparewheel"};
+ positions[] = {"_target selectionPosition ['sparewheel', 'FireGeometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
@@ -116,7 +117,7 @@ class CfgVehicles {
class rhsusf_MATV_base: MRAP_01_base_F {
class EGVAR(interaction,anims) {
class hide_spare {
- selections[] = {"sparewheel"};
+ positions[] = {"_target selectionPosition ['sparewheel', 'Geometry', 'AveragePoint']"};
items[] = {"ACE_Wheel"};
name = ECSTRING(repair,RemoveWheel);
text = ECSTRING(repair,RemovingWheel);
diff --git a/addons/compat_rhs_usf3/compat_rhs_usf3_trenches/CfgVehicles.hpp b/addons/compat_rhs_usf3/compat_rhs_usf3_trenches/CfgVehicles.hpp
index ba4dd16cd7..e914b24d60 100644
--- a/addons/compat_rhs_usf3/compat_rhs_usf3_trenches/CfgVehicles.hpp
+++ b/addons/compat_rhs_usf3/compat_rhs_usf3_trenches/CfgVehicles.hpp
@@ -26,7 +26,7 @@ class CfgVehicles {
};
};
};
- class rhsusf_stryker_m1134_base: rhsusf_stryker_m1132_m2_base {
+ class rhsusf_stryker_m1134_base: rhsusf_stryker_m1126_m2_base {
class EGVAR(interaction,anims): EGVAR(interaction,anims) {
class Hide_PioKit: Hide_PioKit {
positions[] = {{-1, -2.2, -0.8}};
diff --git a/addons/compat_sog/CfgVehicles/tracked.hpp b/addons/compat_sog/CfgVehicles/tracked.hpp
index e2832796a9..7adc0193c6 100644
--- a/addons/compat_sog/CfgVehicles/tracked.hpp
+++ b/addons/compat_sog/CfgVehicles/tracked.hpp
@@ -1,18 +1,55 @@
+// M113A1 https://man.fas.org/dod-101/sys/land/m113.htm
+class Tank_F;
+class APC_Tracked_01_base_F: Tank_F {
+ class ACE_Actions;
+};
+class vn_armor_m113_base: APC_Tracked_01_base_F {
+ EGVAR(refuel,fuelCapacity) = 360;
+ class ACE_Actions: ACE_Actions {
+ class ACE_MainActions;
+ };
+};
+class vn_armor_m577_base: vn_armor_m113_base {
+ class ACE_Actions: ACE_Actions {
+ class ACE_MainActions: ACE_MainActions {
+ position = "[0, 3.5, -1]";
+ };
+ };
+};
+
// M41
class vn_armor_tank_base;
class vn_armor_m41_base: vn_armor_tank_base {
EGVAR(refuel,fuelCapacity) = 530;
};
-// Type 63
-class vn_armor_type63_base: vn_armor_tank_base {
- EGVAR(refuel,fuelCapacity) = 545;
+// M48
+class vn_armor_m48_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_mainturret_backpacks {
+ // Rotate interactions with turret rotation
+ positions[] = {
+ "[[-1.3, -0.7, -0.4], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D",
+ "[[0.1, -2, -0.2], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D"
+ };
+ items[] = {"vn_b_pack_02_02", "vn_b_pack_04_02"};
+ name = "$STR_a3_cfgvehicleclasses_backpacks0";
+ text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ };
+ };
};
-// M113A1 https://man.fas.org/dod-101/sys/land/m113.htm
-class APC_Tracked_01_base_F;
-class vn_armor_m113_base: APC_Tracked_01_base_F {
- EGVAR(refuel,fuelCapacity) = 360;
+// T-54
+class vn_armor_t54_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_mainturret_backpacks {
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, -0.2, 0] vectorAdd ([[-1.1, -0.85, -1.3], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"vn_o_pack_01", "vn_o_pack_02"};
+ name = "$STR_a3_cfgvehicleclasses_backpacks0";
+ text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ };
+ };
};
// PT-76A https://en.wikipedia.org/wiki/PT-76
@@ -24,3 +61,8 @@ class vn_armor_pt76_base: vn_armor_tank_base {
class vn_armor_pt76b_base: vn_armor_pt76_base {
EGVAR(refuel,fuelCapacity) = 400;
};
+
+// Type 63
+class vn_armor_type63_base: vn_armor_tank_base {
+ EGVAR(refuel,fuelCapacity) = 545;
+};
diff --git a/addons/compat_sog/compat_sog_refuel/CfgVehicles.hpp b/addons/compat_sog/compat_sog_refuel/CfgVehicles.hpp
new file mode 100644
index 0000000000..c3dcfb719e
--- /dev/null
+++ b/addons/compat_sog/compat_sog_refuel/CfgVehicles.hpp
@@ -0,0 +1,163 @@
+class CfgVehicles {
+ // Vehicle animation interactions
+ // BTR-40
+ class vn_wheeled_car_base;
+ class vn_wheeled_btr40_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class refuel_can_hide {
+ positions[] = {{0.7, -2.35, -0.9}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class vn_wheeled_btr40_01_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class refuel_can_hide: refuel_can_hide {
+ positions[] = {{0.72, -2.35, -0.45}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_ambulance_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class refuel_can_hide: refuel_can_hide {
+ positions[] = {{0.72, -2.35, -0.45}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_01_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class refuel_can_hide: refuel_can_hide {
+ positions[] = {{0.72, -2.35, -0.9}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_03_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class refuel_can_hide: refuel_can_hide {
+ positions[] = {{0.82, -2.35, -1.25}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_04_base: vn_wheeled_btr40_mg_01_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class refuel_can_hide: refuel_can_hide {
+ positions[] = {{0.72, -2.35, -1}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_05_base: vn_wheeled_btr40_mg_04_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class refuel_can_hide: refuel_can_hide {
+ positions[] = {{0.65, -2.25, -1}};
+ };
+ };
+ };
+
+ // M151
+ class vn_wheeled_m151_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class user_refuel_can_hide {
+ positions[] = {{-0.48, -1.5, -1.1}};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class vn_wheeled_m151_mg_03_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_refuel_can_hide: user_refuel_can_hide {
+ positions[] = {{-0.75, -1.5, -1}};
+ };
+ };
+ };
+ class vn_wheeled_m151_mg_05_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_refuel_can_hide: user_refuel_can_hide {
+ positions[] = {{0.9, -0.1, -1.1}};
+ };
+ };
+ };
+ class vn_wheeled_m151_mg_06_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_refuel_can_hide: user_refuel_can_hide {
+ positions[] = {{0.3, 0.1, -1.1}};
+ };
+ };
+ };
+ class vn_wheeled_m151_01_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_refuel_can_hide: user_refuel_can_hide {
+ positions[] = {{-0.4, -1.5, -0.7}};
+ };
+ };
+ };
+
+ // M577
+ class vn_armor_m113_base;
+ class vn_armor_m577_base: vn_armor_m113_base {
+ class EGVAR(interaction,anims) {
+ class hide_fuel_cans {
+ selections[] = {"hide_fuel_cans"};
+ positions[] = {{1.07, 1.05, -1}};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ // M48
+ class vn_armor_tank_base;
+ class vn_armor_m48_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_mainturret_jerrycan {
+ positions[] = {"_target selectionPosition ['hide_jerrycan', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ // BTR-50PK
+ class vn_armor_btr50pk_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_barrels {
+ selections[] = {"hide_barrels"};
+ positions[] = {"private _pos = _target selectionPosition 'hide_barrels'; _pos set [0, -(_pos select 0)]; _pos"}; // Mirror position to other side of vehicle
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ // PT-76
+ class vn_armor_pt76_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_barrels {
+ selections[] = {"hide_barrels"};
+ positions[] = {"private _pos = _target selectionPosition 'hide_barrels'; _pos set [0, -(_pos select 0)]; _pos"}; // Mirror position to other side of vehicle
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+
+ // Type 63
+ class vn_armor_type63_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_barrels {
+ selections[] = {"hide_barrels"};
+ positions[] = {"private _pos = _target selectionPosition 'hide_barrels'; _pos set [0, -(_pos select 0)]; _pos"}; // Mirror position to other side of vehicle
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+};
diff --git a/addons/compat_sog/compat_sog_refuel/config.cpp b/addons/compat_sog/compat_sog_refuel/config.cpp
new file mode 100644
index 0000000000..793cf90fc4
--- /dev/null
+++ b/addons/compat_sog/compat_sog_refuel/config.cpp
@@ -0,0 +1,18 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {"loadorder_f_vietnam", "ace_refuel"};
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_sog/compat_sog_refuel/script_component.hpp b/addons/compat_sog/compat_sog_refuel/script_component.hpp
new file mode 100644
index 0000000000..af997fb8d4
--- /dev/null
+++ b/addons/compat_sog/compat_sog_refuel/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT refuel
+#define SUBCOMPONENT_BEAUTIFIED refuel
+#include "..\script_component.hpp"
diff --git a/addons/compat_sog/compat_sog_repair/CfgVehicles.hpp b/addons/compat_sog/compat_sog_repair/CfgVehicles.hpp
new file mode 100644
index 0000000000..de93243251
--- /dev/null
+++ b/addons/compat_sog/compat_sog_repair/CfgVehicles.hpp
@@ -0,0 +1,141 @@
+class CfgVehicles {
+ // Vehicle animation interactions
+ // M39 / M54 / M49
+ class vn_wheeled_truck_base;
+ class vn_wheeled_m54_base: vn_wheeled_truck_base {
+ class EGVAR(interaction,anims) {
+ class user_sparewheel_hide {
+ positions[] = {"_target selectionPosition ['hide_spare_wheel', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class vn_wheeled_m54_mg_01_base: vn_wheeled_m54_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_sparewheel_hide: user_sparewheel_hide {
+ items[] = {"ACE_Wheel", "ACE_Wheel", "ACE_Wheel", "ACE_Wheel"};
+ };
+ };
+ };
+
+ // M151
+ class vn_wheeled_car_base;
+ class vn_wheeled_m151_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class user_sparewheel_hide {
+ positions[] = {"_target selectionPosition ['hide_sparewheel', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ // Dirt Ranger
+ class vn_wheeled_lr2a_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class hide_sparewheel {
+ positions[] = {"_target selectionPosition ['hide_sparewheel', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ // BTR-40
+ class vn_wheeled_btr40_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class sparewheel_hide {
+ positions[] = {"_target selectionPosition ['hide_sparewheel', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ // M48
+ class vn_armor_tank_base;
+ class vn_armor_m48_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_mainturret_tracks {
+ // Rotate interactions with turret rotation
+ positions[] = {
+ "[[1.3, 0.2, -0.5], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D",
+ "[[-1.3, 0.2, -0.5], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D"
+ };
+ items[] = {"ACE_Track", "ACE_Track", "ACE_Track", "ACE_Track", "ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+
+ // BTR-50PK
+ class vn_armor_btr50pk_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_tracks {
+ positions[] = {{1.35, 2.5, -0.5}};
+ items[] = {"ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+ class vn_armor_btr50pk_01_base: vn_armor_btr50pk_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tracks: hide_tracks {
+ positions[] = {{1.35, 2.5, -0.8}};
+ };
+ };
+ };
+
+ class vn_armor_btr50pk_02_base: vn_armor_btr50pk_01_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tracks: hide_tracks {
+ positions[] = {{1.35, 2.9, -0.8}};
+ };
+ };
+ };
+
+ // T-54
+ class vn_armor_t54_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_tracks {
+ positions[] = {{1.4, 2.1, -1.7}};
+ items[] = {"ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+
+ // PT-76
+ class vn_armor_pt76_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_tracks {
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, 0.9, 0] vectorAdd ([[-0.6, -0.9, -0.3], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+
+ // Type 63
+ class vn_armor_type63_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_tracks {
+ // Rotate interactions with turret rotation
+ positions[] = {"[0, 0.7, 0] vectorAdd ([[0.4, -1.1, -0.4], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)"};
+ items[] = {"ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+};
diff --git a/addons/compat_sog/compat_sog_repair/config.cpp b/addons/compat_sog/compat_sog_repair/config.cpp
new file mode 100644
index 0000000000..b2cffd8a36
--- /dev/null
+++ b/addons/compat_sog/compat_sog_repair/config.cpp
@@ -0,0 +1,18 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {"loadorder_f_vietnam", "ace_repair"};
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_sog/compat_sog_repair/script_component.hpp b/addons/compat_sog/compat_sog_repair/script_component.hpp
new file mode 100644
index 0000000000..1af928486c
--- /dev/null
+++ b/addons/compat_sog/compat_sog_repair/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT repair
+#define SUBCOMPONENT_BEAUTIFIED Repair
+#include "..\script_component.hpp"
diff --git a/addons/compat_sog/compat_sog_trenches/CfgVehicles.hpp b/addons/compat_sog/compat_sog_trenches/CfgVehicles.hpp
index bb222eaed1..3a826d0139 100644
--- a/addons/compat_sog/compat_sog_trenches/CfgVehicles.hpp
+++ b/addons/compat_sog/compat_sog_trenches/CfgVehicles.hpp
@@ -60,4 +60,199 @@ class CfgVehicles {
class EGVAR(compat_sog,spiderhole_03_nogeo): vn_o_vc_spiderhole_03 {
scope = 1;
};
+
+ // Vehicle animation interactions
+ // BTR-40
+ class vn_wheeled_car_base;
+ class vn_wheeled_btr40_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class shovel_hide {
+ positions[] = {{0.95, -1.5, -0.75}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class vn_wheeled_btr40_01_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class shovel_hide: shovel_hide {
+ positions[] = {{0.95, -1.5, -0.3}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_ambulance_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class shovel_hide: shovel_hide {
+ positions[] = {{0.95, -1.5, -0.3}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_01_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class shovel_hide: shovel_hide {
+ positions[] = {{0.95, -1.5, -0.8}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_03_base: vn_wheeled_btr40_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class shovel_hide: shovel_hide {
+ positions[] = {{1.05, -1.55, -1.1}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_04_base: vn_wheeled_btr40_mg_01_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class shovel_hide: shovel_hide {
+ positions[] = {{0.95, -1.5, -0.85}};
+ };
+ };
+ };
+ class vn_wheeled_btr40_mg_05_base: vn_wheeled_btr40_mg_04_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class shovel_hide: shovel_hide {
+ positions[] = {{0.9, -1.4, -0.85}};
+ };
+ };
+ };
+
+ // Dirt Ranger
+ class vn_wheeled_lr2a_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class hide_shovel {
+ positions[] = {"_target selectionPosition ['hide_shovel', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+
+ // M151
+ class vn_wheeled_m151_base: vn_wheeled_car_base {
+ class EGVAR(interaction,anims) {
+ class user_shovel_hide {
+ positions[] = {{0.65, 0.2, -1.4}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class vn_wheeled_m151_mg_03_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_shovel_hide: user_shovel_hide {
+ positions[] = {{0.35, 0.2, -1.27}};
+ };
+ };
+ };
+ class vn_wheeled_m151_mg_05_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_shovel_hide: user_shovel_hide {
+ enabled = 0;
+ };
+ };
+ };
+ class vn_wheeled_m151_mg_06_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_shovel_hide: user_shovel_hide {
+ enabled = 0;
+ };
+ };
+ };
+ class vn_wheeled_m151_01_base: vn_wheeled_m151_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class user_shovel_hide: user_shovel_hide {
+ positions[] = {{0.72, 0.2, -0.92}};
+ };
+ };
+ };
+
+ // M113
+ class APC_Tracked_01_base_F;
+ class vn_armor_m113_base: APC_Tracked_01_base_F {
+ class EGVAR(interaction,anims) {
+ class hide_shovel {
+ positions[] = {{0.2, 2.2, -0.5}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class vn_armor_m113_01_base: vn_armor_m113_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_shovel: hide_shovel {};
+ };
+ };
+ class vn_armor_m132_base: vn_armor_m113_01_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_shovel: hide_shovel {
+ positions[] = {{0.2, 2.2, -0.35}};
+ };
+ };
+ };
+
+ // Don't inherit, as it's easier for the refuel compat
+ // M577
+ class vn_armor_m577_base: vn_armor_m113_base {
+ class EGVAR(interaction,anims) {
+ class hide_shovel {
+ positions[] = {{0.2, 5.05, -0.57}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+
+ // M48
+ class vn_armor_tank_base;
+ class vn_armor_m48_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_mainturret_tools {
+ positions[] = {"_target selectionPosition ['hide_tools', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+
+ // BTR-50PK
+ class vn_armor_btr50pk_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_shovel {
+ positions[] = {"_target selectionPosition ['hide_shovel', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_EntrenchingTool", "ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+
+ // PT-76
+ class vn_armor_pt76_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_shovel {
+ positions[] = {"_target selectionPosition ['hide_shovel', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+
+ // Type 63
+ class vn_armor_type63_base: vn_armor_tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_shovel {
+ positions[] = {"_target selectionPosition ['hide_shovel', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
};
diff --git a/addons/compat_spe/CfgVehicles/wheeled.hpp b/addons/compat_spe/CfgVehicles/wheeled.hpp
index 6ed68dfbdf..f645db29e6 100644
--- a/addons/compat_spe/CfgVehicles/wheeled.hpp
+++ b/addons/compat_spe/CfgVehicles/wheeled.hpp
@@ -56,8 +56,12 @@ class SPE_OpelBlitz_Ammo: SPE_OpelBlitz_base {
EGVAR(rearm,defaultSupply) = 1200;
};
-// WHEELED - ALLIED FORCES
+class SPE_OpelBlitz_Fuel: SPE_OpelBlitz_base {
+ EGVAR(refuel,hooks)[] = {{-0.23, -2.58, -0.59}};
+ EGVAR(refuel,fuelCargo) = 2000;
+};
+// WHEELED - ALLIED FORCES
class SPE_US_M3_Halftrack_Ambulance: SPE_Halftrack_base {
EGVAR(medical,medicClass) = 1;
};
@@ -69,3 +73,69 @@ class SPE_US_M3_Halftrack_Repair: SPE_Halftrack_base {
class SPE_US_M3_Halftrack_Ammo: SPE_Halftrack_base {
EGVAR(rearm,defaultSupply) = 1200;
};
+
+class SPE_US_M3_Halftrack_Fuel: SPE_Halftrack_base {
+ EGVAR(refuel,hooks)[] = {{-0.23, -2.58, -0.59}};
+ EGVAR(refuel,fuelCargo) = 2000;
+};
+
+class SPE_Car_base;
+class SPE_G503_MB_base: SPE_Car_base {
+ class EGVAR(interaction,anims) {
+ class hide_musette_source {
+ positions[] = {{0.8, -0.97, -0.6}, {-0.8, -0.92, -0.6}};
+ items[] = {"B_SPE_US_M36", "B_SPE_US_M36"};
+ name = "$STR_CTH_B_SPE_US_M36";
+ text = "$STR_CTH_B_SPE_US_M36";
+ };
+ };
+};
+class SPE_US_G503_MB_M1919_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_musette_source: hide_musette_source {
+ positions[] = {{0.8, -0.5, -0.6}, {-0.8, -0.45, -0.6}};
+ };
+ };
+};
+class SPE_US_G503_MB_M1919_Armoured_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_musette_source: hide_musette_source {
+ positions[] = {{0.8, -0.5, -0.6}, {-0.8, -0.45, -0.6}};
+ };
+ };
+};
+class SPE_US_G503_MB_M1919_PATROL_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_musette_source: hide_musette_source {
+ positions[] = {{0.8, -0.5, -0.6}, {-0.8, -0.45, -0.6}};
+ };
+ };
+};
+class SPE_US_G503_MB_M2_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_musette_source: hide_musette_source {
+ positions[] = {{0.8, -0.5, -0.6}, {-0.8, -0.45, -0.6}};
+ };
+ };
+};
+class SPE_US_G503_MB_M2_Armoured_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_musette_source: hide_musette_source {
+ positions[] = {{0.8, -0.5, -0.6}, {-0.8, -0.45, -0.6}};
+ };
+ };
+};
+class SPE_US_G503_MB_M2_PATROL_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_musette_source: hide_musette_source {
+ positions[] = {{0.8, -0.5, -0.6}, {-0.8, -0.45, -0.6}};
+ };
+ };
+};
+class SPE_G503_MB_Ambulance_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_musette_source: hide_musette_source {
+ positions[] = {{0.8, -0.5, -0.6}, {-0.8, -0.45, -0.6}};
+ };
+ };
+};
diff --git a/addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp b/addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp
index fc1ebc9b4e..8819f20559 100644
--- a/addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp
+++ b/addons/compat_spe/compat_spe_refuel/CfgVehicles.hpp
@@ -1,12 +1,57 @@
class CfgVehicles {
- class SPE_Halftrack_base;
- class SPE_US_M3_Halftrack_Fuel: SPE_Halftrack_base {
- EGVAR(refuel,hooks)[] = {{-0.23,-2.58,-0.59}};
- EGVAR(refuel,fuelCargo) = 2000;
+ // Vehicle animation interactions
+ class SPE_Car_base;
+ class SPE_G503_MB_base: SPE_Car_base {
+ class EGVAR(interaction,anims) {
+ class hide_jerry_can_source {
+ positions[] = {"_target selectionPosition ['hide_jerry_can', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
};
- class SPE_OpelBlitz_base;
- class SPE_OpelBlitz_Fuel: SPE_OpelBlitz_base {
- EGVAR(refuel,hooks)[] = {{-0.23,-2.58,-0.59}};
- EGVAR(refuel,fuelCargo) = 2000;
+
+ class SPE_Truck_base;
+ class SPE_CCKW_353_Base: SPE_Truck_base {
+ class EGVAR(interaction,anims) {
+ class spare_fuel_hide_source {
+ positions[] = {{0.8, 1.8, -1}, {-0.8, 1.8, -1}, {0.8, 3.5, -1}, {-0.8, 3.5, -1}};
+ items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F"};
+ name = ECSTRING(refuel,TakeFuelCanister);
+ text = ECSTRING(refuel,TakeFuelCanisterAction);
+ };
+ };
+ };
+ class SPE_CCKW_353_Ammo: SPE_CCKW_353_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class spare_fuel_hide_source: spare_fuel_hide_source {
+ positions[] = {{0.8, 1.8, -0.85}, {-0.8, 1.8, -0.85}, {0.8, 3.5, -0.85}, {-0.8, 3.5, -0.85}};
+ };
+ };
+ };
+ class SPE_CCKW_353_Repair: SPE_CCKW_353_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class spare_fuel_hide_source: spare_fuel_hide_source {
+ positions[] = {{0.8, 1.9, -0.85}, {-0.8, 1.9, -0.85}, {0.8, 3.6, -0.85}, {-0.8, 3.6, -0.85}};
+ };
+ };
+ };
+ class SPE_CCKW_353_Fuel: SPE_CCKW_353_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class spare_fuel_hide_source: spare_fuel_hide_source {
+ positions[] = {{0.8, 1.25, -0.8}, {-0.8, 1.25, -0.8}, {0.8, 2.95, -0.8}, {-0.8, 2.95, -0.8}, {0.8, -1, -0.3}, {-0.8, -1, -0.3}};
+ items[] = { // 32x
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F",
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F",
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F",
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F",
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F",
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F",
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F",
+ "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F", "Land_CanisterFuel_F"
+ };
+ };
+ };
};
};
diff --git a/addons/compat_spe/compat_spe_repair/CfgVehicles.hpp b/addons/compat_spe/compat_spe_repair/CfgVehicles.hpp
new file mode 100644
index 0000000000..5b245eebbc
--- /dev/null
+++ b/addons/compat_spe/compat_spe_repair/CfgVehicles.hpp
@@ -0,0 +1,106 @@
+class CfgVehicles {
+ // Vehicle animation interactions
+ class SPE_Car_base;
+ class SPE_G503_MB_base: SPE_Car_base {
+ class EGVAR(interaction,anims) {
+ class hide_spare_wheel_source {
+ positions[] = {"_target selectionPosition ['hide_spare_wheel', 'ViewGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ class SPE_Truck_base;
+ class SPE_CCKW_353_Base: SPE_Truck_base {
+ class EGVAR(interaction,anims) {
+ class spare_wheel_hide_source {
+ positions[] = {{-0.9, 0.35, -0.95}};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class SPE_CCKW_353_Ammo: SPE_CCKW_353_Base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class spare_wheel_hide_source: spare_wheel_hide_source {
+ positions[] = {{-0.9, 0.35, -0.8}};
+ };
+ };
+ };
+
+ class SPE_R200_base: SPE_Car_base {
+ class EGVAR(interaction,anims) {
+ class hide_spare_wheel_source {
+ positions[] = {"_target selectionPosition ['hide_sparetire', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+
+ class SPE_Tank_base;
+ class SPE_M18_Hellcat_Base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class hull_armour_hide_source {
+ positions[] = {"_target selectionPosition ['spare_track_hull', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Track", "ACE_Track", "ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+
+ class SPE_PzKpfwV_base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class spare_tracks_hide_source {
+ selections[] = {"spare_tracks"};
+ positions[] = {"private _pos = _target selectionPosition 'spare_tracks'; _pos set [0, -(_pos select 0)]; _pos"}; // Mirror position to other side of vehicle
+ items[] = {"ACE_Track", "ACE_Track", "ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+
+ class SPE_PzKpfwVI_H1_base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class hull_armour_hide_source {
+ positions[] = {{-1.3, 1.7, -0.75}, {1.1, 1.7, -0.75}, {-0.05, 2.35, -1.5}};
+ items[] = {"ACE_Track", "ACE_Track", "ACE_Track", "ACE_Track", "ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ class turret_armour_hide_source {
+ // Rotate interactions with turret rotation
+ positions[] = {
+ "[0, -0.6, 0] vectorAdd ([[1.2, 0, -0.2], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)",
+ "[0, -0.6, 0] vectorAdd ([[-1.3, -0.3, -0.2], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)"
+ };
+ items[] = {"ACE_Track", "ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+
+ class SPE_Jagdpanther_G1_base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_spare_tracks_left_source {
+ positions[] = {"private _pos = _target selectionPosition ['hide_spare_tracks_right', 'FireGeometry', 'AveragePoint']; _pos set [0, -(_pos select 0)]; _pos vectorAdd [0, 0.335, 0]"};
+ items[] = {"ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ class hide_spare_tracks_right_source {
+ positions[] = {"_target selectionPosition ['hide_spare_tracks_right', 'FireGeometry', 'AveragePoint']"};
+ items[] = {"ACE_Track", "ACE_Track"};
+ name = ECSTRING(repair,RemoveTrack);
+ text = ECSTRING(repair,RemovingTrack);
+ };
+ };
+ };
+};
diff --git a/addons/compat_spe/compat_spe_repair/config.cpp b/addons/compat_spe/compat_spe_repair/config.cpp
new file mode 100644
index 0000000000..356ef6a6be
--- /dev/null
+++ b/addons/compat_spe/compat_spe_repair/config.cpp
@@ -0,0 +1,27 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "ww2_spe_assets_c_weapons_infantryweapons_c",
+ "ww2_spe_assets_c_vehicles_staticweapons_c",
+ "ww2_spe_assets_c_vehicles_weapons_c",
+ "ww2_spe_core_f_system_staticweapons_f",
+ "ww2_spe_core_c_core_c_eventhandlers",
+ "ace_repair"
+ };
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_spe/compat_spe_repair/script_component.hpp b/addons/compat_spe/compat_spe_repair/script_component.hpp
new file mode 100644
index 0000000000..1af928486c
--- /dev/null
+++ b/addons/compat_spe/compat_spe_repair/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT repair
+#define SUBCOMPONENT_BEAUTIFIED Repair
+#include "..\script_component.hpp"
diff --git a/addons/compat_spe/compat_spe_trenches/CfgVehicles.hpp b/addons/compat_spe/compat_spe_trenches/CfgVehicles.hpp
new file mode 100644
index 0000000000..bb4b78721d
--- /dev/null
+++ b/addons/compat_spe/compat_spe_trenches/CfgVehicles.hpp
@@ -0,0 +1,119 @@
+class CfgVehicles {
+ // Vehicle animation interactions
+ class SPE_Car_base;
+ class SPE_G503_MB_base: SPE_Car_base {
+ class EGVAR(interaction,anims) {
+ class hide_tools_source {
+ positions[] = {{-0.7, 0, -0.9}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+ class SPE_US_G503_MB_M1919_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools_source: hide_tools_source {
+ positions[] = {{-0.7, 0.45, -0.9}};
+ };
+ };
+ };
+ class SPE_US_G503_MB_M1919_Armoured_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools_source: hide_tools_source {
+ positions[] = {{-0.7, 0.45, -0.9}};
+ };
+ };
+ };
+ class SPE_US_G503_MB_M1919_PATROL_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools_source: hide_tools_source {
+ positions[] = {{-0.7, 0.45, -0.9}};
+ };
+ };
+ };
+ class SPE_US_G503_MB_M2_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools_source: hide_tools_source {
+ positions[] = {{-0.7, 0.45, -0.9}};
+ };
+ };
+ };
+ class SPE_US_G503_MB_M2_Armoured_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools_source: hide_tools_source {
+ positions[] = {{-0.7, 0.45, -0.9}};
+ };
+ };
+ };
+ class SPE_US_G503_MB_M2_PATROL_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools_source: hide_tools_source {
+ positions[] = {{-0.7, 0.45, -0.9}};
+ };
+ };
+ };
+ class SPE_G503_MB_Ambulance_base: SPE_G503_MB_base {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class hide_tools_source: hide_tools_source {
+ positions[] = {{-0.7, 0.45, -0.9}};
+ };
+ };
+ };
+
+ class SPE_R200_base: SPE_Car_base {
+ class EGVAR(interaction,anims) {
+ class hide_shovel_source {
+ positions[] = {{0.5, 1.2, -1.05}};
+ items[] = {"ACE_EntrenchingTool"};
+ name = ECSTRING(trenches,EntrenchingToolName);
+ text = ECSTRING(trenches,EntrenchingToolName);
+ };
+ };
+ };
+
+ class SPE_Tank_base;
+ class SPE_PzKpfwV_base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class tools_hide_source {
+ positions[] = {{-1.45, 0.7, -0.4}};
+ items[] = {"ACE_EntrenchingTool", "ACE_wirecutter"};
+ name = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ text = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ };
+ };
+ };
+
+ class SPE_PzKpfwVI_H1_base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class tools_hide_source {
+ positions[] = {{0, 1, -0.6}, {1.1, 0.1, -0.6}};
+ items[] = {"ACE_EntrenchingTool", "ACE_wirecutter"};
+ name = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ text = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ };
+ };
+ };
+
+ class SPE_StuG_III_base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_tools_left_source {
+ positions[] = {{-1.4, -1.4, -0.7}, {-1, -2.2, -0.65}};
+ items[] = {"ACE_EntrenchingTool", "ACE_wirecutter"};
+ name = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ text = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ };
+ };
+ };
+
+ class SPE_Jagdpanther_G1_base: SPE_Tank_base {
+ class EGVAR(interaction,anims) {
+ class hide_tools_left_source {
+ positions[] = {{-1.4, 0.5, -0.7}};
+ items[] = {"ACE_EntrenchingTool", "ACE_wirecutter"};
+ name = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ text = "$STR_a3_cfgeditorsubcategories_edsubcat_tools0";
+ };
+ };
+ };
+};
diff --git a/addons/compat_spe/compat_spe_trenches/config.cpp b/addons/compat_spe/compat_spe_trenches/config.cpp
new file mode 100644
index 0000000000..1b742b5782
--- /dev/null
+++ b/addons/compat_spe/compat_spe_trenches/config.cpp
@@ -0,0 +1,27 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "ww2_spe_assets_c_weapons_infantryweapons_c",
+ "ww2_spe_assets_c_vehicles_staticweapons_c",
+ "ww2_spe_assets_c_vehicles_weapons_c",
+ "ww2_spe_core_f_system_staticweapons_f",
+ "ww2_spe_core_c_core_c_eventhandlers",
+ "ace_trenches"
+ };
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_spe/compat_spe_trenches/script_component.hpp b/addons/compat_spe/compat_spe_trenches/script_component.hpp
new file mode 100644
index 0000000000..10b90eb71e
--- /dev/null
+++ b/addons/compat_spe/compat_spe_trenches/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT trenches
+#define SUBCOMPONENT_BEAUTIFIED Trenches
+#include "..\script_component.hpp"
diff --git a/addons/compat_ws/CfgVehicles.hpp b/addons/compat_ws/CfgVehicles.hpp
new file mode 100644
index 0000000000..9c2f3184c0
--- /dev/null
+++ b/addons/compat_ws/CfgVehicles.hpp
@@ -0,0 +1,45 @@
+class CfgVehicles {
+ // Vehicle animation interactions
+ class Offroad_01_base_lxWS;
+ class Offroad_01_armor_base_lxWS: Offroad_01_base_lxWS {
+ class EGVAR(interaction,anims) {
+ class HideBackpacks {
+ positions[] = {{-1.15, -1.15, -0.7}, {1.1, -1.15, -0.7}, {1.1, -2.5, -0.7}};
+ items[] = {"B_TacticalPack_blk", "B_TacticalPack_blk", "B_Carryall_khk", "B_Carryall_khk"};
+ name = "$STR_a3_cfgvehicleclasses_backpacks0";
+ text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ };
+ };
+ };
+
+ class I_G_Offroad_01_AT_F;
+ class Offroad_01_AT_lxWS: I_G_Offroad_01_AT_F {
+ class EGVAR(interaction,anims) {
+ class HideBackpacks {
+ positions[] = {{-1.15, -1.25, -0.2}, {1.1, -1.25, -0.2}, {1.1, -2.6, -0.2}};
+ items[] = {"B_TacticalPack_blk", "B_TacticalPack_blk", "B_Carryall_khk", "B_Carryall_khk"};
+ name = "$STR_a3_cfgvehicleclasses_backpacks0";
+ text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ };
+ };
+ };
+ class Offroad_01_armor_AT_lxWS: Offroad_01_AT_lxWS {
+ class EGVAR(interaction,anims): EGVAR(interaction,anims) {
+ class HideBackpacks: HideBackpacks {
+ positions[] = {{-1.15, -1.25, -0.7}, {1.1, -1.25, -0.7}, {1.1, -2.6, -0.7}};
+ };
+ };
+ };
+
+ class I_G_Offroad_01_armed_F;
+ class Offroad_01_armed_lxWS: I_G_Offroad_01_armed_F {
+ class EGVAR(interaction,anims) {
+ class HideBackpacks {
+ positions[] = {{-1.15, -1.03, -0.8}, {1.1, -1.03, -0.8}, {1.1, -2.38, -0.8}};
+ items[] = {"B_TacticalPack_blk", "B_TacticalPack_blk", "B_Carryall_khk", "B_Carryall_khk"};
+ name = "$STR_a3_cfgvehicleclasses_backpacks0";
+ text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ };
+ };
+ };
+};
diff --git a/addons/compat_ws/compat_ws_realisticnames/CfgVehicles.hpp b/addons/compat_ws/compat_ws_realisticnames/CfgVehicles.hpp
index fe1aed7e17..5396b8f186 100644
--- a/addons/compat_ws/compat_ws_realisticnames/CfgVehicles.hpp
+++ b/addons/compat_ws/compat_ws_realisticnames/CfgVehicles.hpp
@@ -57,4 +57,173 @@ class CfgVehicles {
class B_ION_Heli_Light_02_unarmed_lxWS: O_Heli_Light_02_unarmed_F {
displayName = SUBCSTRING(heli_light_02_unarmed_Name);
};
+
+ #include "CfgVehiclesAttachments.hpp"
+
+ // AA12
+ class Weapon_Base_F;
+ class Weapon_sgun_aa40_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(AA40_Name);
+ };
+ class Weapon_sgun_aa40_tan_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(AA40_Tan_Name);
+ };
+ class Weapon_sgun_aa40_snake_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(AA40_Snake_Name);
+ };
+
+ // Galil ARM
+ class Weapon_arifle_Galat_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(Galat_Name);
+ };
+ class Weapon_arifle_Galat_worn_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(Galat_Old_Name);
+ };
+
+ // GLX 160
+ class Weapon_glaunch_GLX_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(GLX_Name);
+ };
+ class Weapon_glaunch_GLX_snake_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(GLX_Snake_Name);
+ };
+ class Weapon_glaunch_GLX_hex_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(GLX_Hex_Name);
+ };
+ class Weapon_glaunch_GLX_ghex_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(GLX_GreenHex_Name);
+ };
+ class Weapon_glaunch_GLX_camo_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(GLX_Camo_Name);
+ };
+ class Weapon_glaunch_GLX_tan_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(GLX_Tan_Name);
+ };
+
+ // Mk14 Mod 1 EBR
+ class Weapon_srifle_EBR_blk_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(EBR_Black_Name);
+ };
+ class Weapon_srifle_EBR_snake_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(EBR_Snake_Name);
+ };
+
+ // Vektor SS-77
+ class Weapon_LMG_S77_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(S77_Name);
+ };
+ class Weapon_LMG_S77_AAF_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(S77_AAF_Name);
+ };
+ class Weapon_LMG_S77_Hex_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(S77_Hex_Name);
+ };
+ class Weapon_LMG_S77_GHex_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(S77_GreenHex_Name);
+ };
+ class Weapon_LMG_S77_Desert_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(S77_Desert_Name);
+ };
+
+ // Vektor SS-77 (Compact)
+ class Weapon_LMG_S77_Compact_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(S77_Compact_Name);
+ };
+ class Weapon_LMG_S77_Compact_Snakeskin_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(S77_Compact_Snake_Name);
+ };
+
+ // FN FAL (Wood) - Closest match is the 50.00
+ class Weapon_arifle_SLR_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_Wood_Name);
+ };
+ class Weapon_arifle_SLR_GL_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_GL_Wood_Name);
+ };
+
+ // FN FAL
+ class Weapon_arifle_SLR_V_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_Name);
+ };
+ class Weapon_arifle_SLR_V_GL_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_GL_Name);
+ };
+ class Weapon_arifle_SLR_D_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_Desert_Name);
+ };
+ class Weapon_arifle_SLR_V_camo_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_Camo_Name);
+ };
+ class Weapon_arifle_SLR_Para_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_Para_Name);
+ };
+ class Weapon_arifle_SLR_Para_snake_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(SLR_Para_Snake_Name);
+ };
+
+ // Vektor R4/R5
+ class Weapon_arifle_Velko_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(Velko_R4_Name);
+ };
+ class Weapon_arifle_VelkoR5_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(Velko_R5_Name);
+ };
+ class Weapon_arifle_VelkoR5_GL_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(Velko_R5_GL_Name);
+ };
+ class Weapon_arifle_VelkoR5_snake_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(Velko_R5_Snake_Name);
+ };
+ class Weapon_arifle_VelkoR5_GL_snake_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(Velko_R5_GL_Snake_Name);
+ };
+
+ // XMS has no realistic name as it's a make believe hybrid of the XM8/VHS-K2: XM8+VHS = XMS, this just removes the 5.56 mm from the name.
+ class Weapon_arifle_XMS_Base_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_Name);
+ };
+ class Weapon_arifle_XMS_Base_khk_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_Khaki_Name);
+ };
+ class Weapon_arifle_XMS_Base_Sand_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_Sand_Name);
+ };
+ class Weapon_arifle_XMS_GL_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_GL_Name);
+ };
+ class Weapon_arifle_XMS_GL_khk_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_GL_Khaki_Name);
+ };
+ class Weapon_arifle_XMS_GL_Sand_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_GL_Sand_Name);
+ };
+ class Weapon_arifle_XMS_Shot_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_SG_Name);
+ };
+ class Weapon_arifle_XMS_Shot_khk_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_SG_Khaki_Name);
+ };
+ class Weapon_arifle_XMS_Shot_Sand_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_SG_Sand_Name);
+ };
+ class Weapon_arifle_XMS_M_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_SW_Name);
+ };
+ class arifle_XMS_M_khk_lxWS: Weapon_Base_F {
+ diWeapon_splayName = SUBCSTRING(XMS_SW_Khaki_Name);
+ };
+ class Weapon_arifle_XMS_M_Sand_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(XMS_SW_Sand_Name);
+ };
+
+ // GM6 Lynx
+ class Weapon_srifle_GM6_snake_lxWS: Weapon_Base_F {
+ displayName = SUBCSTRING(gm6_snake_Name);
+ };
+
+ // RPG-32
+ class Launcher_Base_F;
+ class Weapon_launch_RPG32_tan_lxWS: Launcher_Base_F {
+ displayName = SUBCSTRING(rpg32_tan_Name);
+ };
};
diff --git a/addons/compat_ws/compat_ws_realisticnames/CfgVehiclesAttachments.hpp b/addons/compat_ws/compat_ws_realisticnames/CfgVehiclesAttachments.hpp
new file mode 100644
index 0000000000..5dbeab9bc4
--- /dev/null
+++ b/addons/compat_ws/compat_ws_realisticnames/CfgVehiclesAttachments.hpp
@@ -0,0 +1,71 @@
+// Attachments
+class Item_Base_F;
+class Item_optic_arco_hex_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(arco_hex_Name);
+};
+
+class Item_optic_Holosight_snake_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(holosight_snake_Name);
+};
+
+class Item_optic_Holosight_smg_snake_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(holosight_snake_smg_Name);
+};
+
+class Item_optic_Hamr_arid_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(hamr_arid_Name);
+};
+class Item_optic_Hamr_lush_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(hamr_lush_Name);
+};
+class Item_optic_Hamr_sand_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(hamr_sand_Name);
+};
+class Item_optic_Hamr_snake_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(hamr_snake_Name);
+};
+
+class Item_optic_r1_high_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_high_black_Name);
+};
+class Item_optic_r1_high_khaki_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_high_khaki_Name);
+};
+class Item_optic_r1_high_sand_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_high_sand_Name);
+};
+class Item_optic_r1_high_snake_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_high_snake_Name);
+};
+class Item_optic_r1_high_arid_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_high_arid_Name);
+};
+class Item_optic_r1_high_lush_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_high_lush_Name);
+};
+class Item_optic_r1_high_black_sand_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_high_black_sand_Name);
+};
+
+class Item_optic_r1_low_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_low_black_Name);
+};
+class Item_optic_r1_low_khaki_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_low_khaki_Name);
+};
+class Item_optic_r1_low_sand_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_low_sand_Name);
+};
+class Item_optic_r1_low_snake_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_low_snake_Name);
+};
+class Item_optic_r1_low_arid_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_low_arid_Name);
+};
+class Item_optic_r1_low_lush_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(r1_low_lush_Name);
+};
+
+class Item_optic_DMS_snake_lxWS: Item_Base_F {
+ displayName = SUBCSTRING(dms_snake_Name);
+};
diff --git a/addons/compat_ws/compat_ws_realisticnames/CfgWeapons.hpp b/addons/compat_ws/compat_ws_realisticnames/CfgWeapons.hpp
index e9cf3c6934..b1929a4904 100644
--- a/addons/compat_ws/compat_ws_realisticnames/CfgWeapons.hpp
+++ b/addons/compat_ws/compat_ws_realisticnames/CfgWeapons.hpp
@@ -1,5 +1,5 @@
class CfgWeapons {
- #include "Attachments.hpp"
+ #include "CfgWeaponsAttachments.hpp"
// AA12
class sgun_aa40_base_lxWS;
diff --git a/addons/compat_ws/compat_ws_realisticnames/Attachments.hpp b/addons/compat_ws/compat_ws_realisticnames/CfgWeaponsAttachments.hpp
similarity index 99%
rename from addons/compat_ws/compat_ws_realisticnames/Attachments.hpp
rename to addons/compat_ws/compat_ws_realisticnames/CfgWeaponsAttachments.hpp
index 95801e04e9..a805e82edc 100644
--- a/addons/compat_ws/compat_ws_realisticnames/Attachments.hpp
+++ b/addons/compat_ws/compat_ws_realisticnames/CfgWeaponsAttachments.hpp
@@ -1,3 +1,4 @@
+// Attachments
class optic_Arco;
class optic_arco_hex_lxWS: optic_Arco {
displayName = SUBCSTRING(arco_hex_Name);
diff --git a/addons/compat_ws/compat_ws_realisticnames/config.cpp b/addons/compat_ws/compat_ws_realisticnames/config.cpp
index 0eb75926a8..167e83fa35 100644
--- a/addons/compat_ws/compat_ws_realisticnames/config.cpp
+++ b/addons/compat_ws/compat_ws_realisticnames/config.cpp
@@ -15,6 +15,8 @@ class CfgPatches {
authors[] = {"Mike"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
};
};
diff --git a/addons/compat_ws/compat_ws_realisticnames/stringtable.xml b/addons/compat_ws/compat_ws_realisticnames/stringtable.xml
index 606bbb7932..66c1791f9c 100644
--- a/addons/compat_ws/compat_ws_realisticnames/stringtable.xml
+++ b/addons/compat_ws/compat_ws_realisticnames/stringtable.xml
@@ -29,6 +29,7 @@
AA12 (ヘビ柄迷彩)
AA12 (Змея)
AA12 (Serpiente)
+ AA12 (Sable)
Galil ARM
@@ -68,6 +69,7 @@
GLX 160 (ヘビ柄迷彩)
GLX 160 (Змея)
GLX 160 (Serpiente)
+ GLX 160
GLX 160 (Hex)
@@ -127,6 +129,7 @@
Mk14 Mod 1 EBR (ヘビ柄迷彩)
Mk14 Mod 1 EBR (Змея)
Mk14 Mod 1 EBR (Serpiente)
+ Mk14 Mod 1 EBR (Serpent)
Vektor SS-77
@@ -195,6 +198,7 @@
ヴェクター SS-77 コンパクト (ヘビ柄迷彩)
Vektor SS-77 Compact (змея)
Vektor SS-77 Compacta (Serpiente)
+ Vektor SS-77 Compacte (Serpent)
FN FAL 50.00 (Wood)
@@ -262,6 +266,7 @@
FN FAL OSW 파라
FN FAL OSW Fallschirmjäger
FN FAL OSW Para
+ FN FAL OSW Para
FN FAL OSW Para (Snake)
@@ -269,6 +274,7 @@
FN FAL OSW 파라 (뱀 위장)
FN FAL OSW Fallschirmjäger (Schlange)
FN FAL OSW Para (Serpe)
+ FN FAL OSW Para (Serpent)
Vektor R4
@@ -308,6 +314,7 @@
ヴェクター R5 カービン (ヘビ柄迷彩)
Vektor R5 Carbine (Змея)
Vektor R5 Carabina (Serpiente)
+ Vektor R5 Carbine (Serpent)
Vektor R5 Carbine GL (Snake)
@@ -317,6 +324,7 @@
ヴェクター R5 カービン GL (ヘビ柄迷彩)
Vektor R5 Carbine GL (Змея)
Vektor R5 Carabina GL (Serpiente)
+ Vektor R5 Carbine GL (Serpent)
XMS
@@ -468,6 +476,7 @@
GM6 링스 (뱀 위장)
GM6 Lynx (Schlange)
GM6 Lynx (Serpe)
+ GM6 Lynx (Serpent)
RPG-32 (Sand)
@@ -475,6 +484,7 @@
RPG-32 (모래)
RPG-32 (Sand)
RPG-32 (Sabbia)
+ RPG-32 (Sable)
ELCAN SpecterOS (Hex)
@@ -482,6 +492,7 @@
엘칸 스펙터OS (육각)
ELCAN SpecterOS (Hex)
ELCAN SpecterOS (Hex)
+ ELCAN SpecterOS (Hex)
EOTech XPS3 (Snake)
@@ -489,6 +500,7 @@
이오텍 XPS3 (뱀 위장)
EOTech XPS3 (Schlange)
EOTech XPS3 (Serpe)
+ EOTech XPS3 (Serpent)
EOTech XPS3 SMG (Snake)
@@ -496,6 +508,7 @@
이오텍 XPS3 SMG (뱀 위장)
EOTech XPS3 SMG (Schlange)
EOTech XPS3 SMG (Serpe)
+ EOTech XPS3 SMG (Serpent)
Leupold Mark 4 HAMR (Arid)
@@ -503,6 +516,7 @@
류폴드 마크 4 HAMR (건조)
Leupold Mark 4 HAMR (Trocken)
Leupold Mark 4 HAMR (Arido)
+ Leupold Mark 4 HAMR (Aride)
Leupold Mark 4 HAMR (Lush)
@@ -510,6 +524,7 @@
류폴드 마크 4 HAMR (초목)
Leupold Mark 4 HAMR (Grün)
Leupold Mark 4 HAMR (Verdeggiante)
+ Leupold Mark 4 HAMR (Vert)
Leupold Mark 4 HAMR (Sand)
@@ -517,6 +532,7 @@
류폴드 마크 4 HAMR (모래)
Leupold Mark 4 HAMR (Sand)
Leupold Mark 4 HAMR (Sabbia)
+ Leupold Mark 4 HAMR (Sable)
Leupold Mark 4 HAMR (Snake)
@@ -524,6 +540,7 @@
류폴드 마크 4 HAMR (뱀 위장)
Leupold Mark 4 HAMR (Schlange)
Leupold Mark 4 HAMR (Serpe)
+ Leupold Mark 4 HAMR (Serpent)
Aimpoint Micro R-1 (High, Black)
@@ -531,6 +548,7 @@
에임포인트 마이크로 R-1 (높음, 검정)
Aimpoint Micro R-1 (Hoch, Schwarz)
Aimpoint Micro R-1 (Alto, Nero)
+ Aimpoint Micro R-1 (Haut, Noir)
Aimpoint Micro R-1 (High, Khaki)
@@ -538,6 +556,7 @@
에임포인트 마이크로 R-1 (높음, 카키)
Aimpoint Micro R-1 (Hoch, Khaki)
Aimpoint Micro R-1 (Alto, Cachi)
+ Aimpoint Micro R-1 (Haut, Kaki)
Aimpoint Micro R-1 (High, Sand)
@@ -545,6 +564,7 @@
에임포인트 마이크로 R-1 (높음, 모래)
Aimpoint Micro R-1 (Hoch, Sand)
Aimpoint Micro R-1 (Alto, Sabbia)
+ Aimpoint Micro R-1 (Haut, Sable)
Aimpoint Micro R-1 (High, Snake)
@@ -552,6 +572,7 @@
에임포인트 마이크로 R-1 (높음, 뱀 위장)
Aimpoint Micro R-1 (Hoch, Schlange)
Aimpoint Micro R-1 (Alto, Serpe)
+ Aimpoint Micro R-1 (Haut, Serpent)
Aimpoint Micro R-1 (High, Arid)
@@ -559,6 +580,7 @@
에임포인트 마이크로 R-1 (높음, 건조)
Aimpoint Micro R-1 (Hoch, Trocken)
Aimpoint Micro R-1 (Alto, Arido)
+ Aimpoint Micro R-1 (Hoch, Arid
Aimpoint Micro R-1 (High, Lush)
@@ -566,6 +588,7 @@
에임포인트 마이크로 R-1 (높음, 초목)
Aimpoint Micro R-1 (Hoch, Grün)
Aimpoint Micro R-1 (Alto, Verdeggiante)
+ Aimpoint Micro R-1 (Haute, Vert)
Aimpoint Micro R-1 (High, Black/Sand)
@@ -573,6 +596,7 @@
에임포인트 마이크로 R-1 (높음, 검정/모래)
Aimpoint Micro R-1 (Hoch, Schwarz/Sand)
Aimpoint Micro R-1 (Alto, Nero/Sabbia)
+ Aimpoint Micro R-1 (Haut, Noir/Sable)
Aimpoint Micro R-1 (Low, Black)
@@ -580,6 +604,7 @@
에임포인트 마이크로 R-1 (낮음, 검정)
Aimpoint Micro R-1 (Tief, Schwarz)
Aimpoint Micro R-1 (Basso, Nero)
+ Aimpoint Micro R-1 (Bas, Noir)
Aimpoint Micro R-1 (Low, Khaki)
@@ -587,6 +612,7 @@
에임포인트 마이크로 R-1 (낮음, 카키)
Aimpoint Micro R-1 (Tief, Khaki)
Aimpoint Micro R-1 (Basso, Cachi)
+ Aimpoint Micro R-1 (Bas, Kaki)
Aimpoint Micro R-1 (Low, Sand)
@@ -594,6 +620,7 @@
에임포인트 마이크로 R-1 (낮음, 모래)
Aimpoint Micro R-1 (Tief, Sand)
Aimpoint Micro R-1 (Basso, Sabbia)
+ Aimpoint Micro R-1 ( Bas, Sable )
Aimpoint Micro R-1 (Low, Snake)
@@ -601,6 +628,7 @@
에임포인트 마이크로 R-1 (낮음, 뱀 위장)
Aimpoint Micro R-1 (Tief, Schlange)
Aimpoint Micro R-1 (Basso, Serpe)
+ Aimpoint Micro R-1 (Bas, Serpent)
Aimpoint Micro R-1 (Low, Arid)
@@ -608,6 +636,7 @@
에임포인트 마이크로 R-1 (낮음, 건조)
Aimpoint Micro R-1 (Tief, Trocken)
Aimpoint Micro R-1 (Basso, Arido)
+ Aimpoint Micro R-1 (Bas, Arid)
Aimpoint Micro R-1 (Low, Lush)
@@ -615,6 +644,7 @@
에임포인트 마이크로 R-1 (낮음, 초목)
Aimpoint Micro R-1 (Tief, Grün)
Aimpoint Micro R-1 (Basso, Verdeggiante)
+ Aimpoint Micro R-1 (Bas, Vert)
Burris XTR II (Snake)
@@ -622,6 +652,7 @@
버리스 XTR II (뱀 위장)
Burris XTR II (Schlange)
Burris XTR II (Serpe)
+ Burris XTR II (Serpent)
Badger IFV (ATGM)
@@ -629,6 +660,7 @@
뱃져 보병전투차 (대전차미사일)
Badger IFV (PzAbw)
Badger IFV (ATGM)
+ Badger IFV (ATGM)
Badger IFV (Command)
@@ -636,6 +668,7 @@
뱃져 보병전투차 (지휘)
Badger IFV (Kommando)
Badger IFV (Comando)
+ Badger IFV (Commandement)
Badger IFV (Mortar)
@@ -643,6 +676,7 @@
뱃져 보병전투차 (자주박격포)
Badger IFV (Mörser)
Badger IFV (Mortaio)
+ Badger IFV (mortier)
KamAZ (Zu-23-2)
@@ -650,6 +684,7 @@
카마즈 (ZU-23-2)
KamAZ (Zu-23-2)
KamAZ (Zu-23-2)
+ KamAZ (Zu-23-2)
KamAZ Cargo
@@ -657,6 +692,7 @@
카마즈 화물
KamAZ Fracht
KamAZ Carico
+ KamAZ Cargo
KamAZ Repair
@@ -664,6 +700,7 @@
카마즈 정비
KamAZ Instandsetzung
KamAZ Riparazione
+ KamAZ Réparation
KamAZ Racing
@@ -671,6 +708,7 @@
카마즈 경주용
KamAZ Rennlaster
KamAZ da corsa
+ KamAZ de course
KamAZ Ammo
@@ -678,6 +716,7 @@
카마즈 탄약
KamAZ Munition
KamAZ Munizioni
+ KamAZ Munitions
KamAZ Flatbed
@@ -685,6 +724,7 @@
카마즈 플랫베드
KamAZ Flachbett
KamAZ Pianale
+ KamAZ Flatbed
AW101 Merlin
@@ -692,6 +732,7 @@
AW101 멀린
AW101 Merlin
AW101 Merlin
+ AW101 Merlin
BM-2T Stalker (Bumerang-BM)
@@ -699,6 +740,7 @@
BM-2T 스토커 (부메랑-BM)
BM-2T Stalker (Bumerang-BM)
BM-2T Stalker (Bumerang-BM)
+ BM-2T Stalker (Boomerang-BM)
Otokar ARMA (HMG)
@@ -706,6 +748,7 @@
오토카르 아르마 APC (중기관총)
Otokar ARMA (HMG)
Otokar ARMA (HMG)
+ Otokar ARMA (HMG)
Otokar ARMA (Unarmed)
@@ -713,6 +756,7 @@
오토카르 아르마 APC (비무장)
Otokar ARMA (Unbewaffnet)
Otokar ARMA (Disarmato)
+ Otokar ARMA (non armé)
Ka-60 Kasatka (UP)
@@ -720,6 +764,7 @@
Ka-60 카사트카 (UP)
Ka-60 Kasatka (UP)
Ka-60 Kasatka (UP)
+ Ka-60 Kasatka (UP)
Ka-60 Kasatka (UP, Unarmed)
@@ -727,6 +772,7 @@
Ka-60 카사트카 (UP, 비무장))
Ka-60 Kasatka (UP, Unbewaffnet)
Ka-60 Kasatka (UP, Disarmato)
+ Ka-60 Kasatka (UP, non armé)
diff --git a/addons/compat_ws/compat_ws_repair/CfgVehicles.hpp b/addons/compat_ws/compat_ws_repair/CfgVehicles.hpp
new file mode 100644
index 0000000000..d7fcbc7cd9
--- /dev/null
+++ b/addons/compat_ws/compat_ws_repair/CfgVehicles.hpp
@@ -0,0 +1,34 @@
+class CfgVehicles {
+ // Vehicle animation interactions
+ class Truck_02_base_F;
+ class Truck_02_aa_base_lxWS: Truck_02_base_F {
+ class EGVAR(interaction,anims) {
+ class hideSpareWheel {
+ positions[] = {{1, 1.93, -0.85}};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class Truck_02_cargo_base_lxWS: Truck_02_base_F {
+ class EGVAR(interaction,anims) {
+ class hideSpareWheel {
+ positions[] = {{1, 1.93, -0.35}};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+ class Truck_02_box_base_lxWS: Truck_02_base_F {
+ class EGVAR(interaction,anims) {
+ class hideSpareWheel {
+ positions[] = {{1, 1.7, -0.35}};
+ items[] = {"ACE_Wheel"};
+ name = ECSTRING(repair,RemoveWheel);
+ text = ECSTRING(repair,RemovingWheel);
+ };
+ };
+ };
+};
diff --git a/addons/compat_ws/compat_ws_repair/config.cpp b/addons/compat_ws/compat_ws_repair/config.cpp
new file mode 100644
index 0000000000..4f37c831cb
--- /dev/null
+++ b/addons/compat_ws/compat_ws_repair/config.cpp
@@ -0,0 +1,20 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = COMPONENT_NAME;
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {"data_f_lxWS_Loadorder", "ace_repair"};
+ skipWhenMissingDependencies = 1;
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"johnb43"};
+ url = ECSTRING(main,URL);
+ VERSION_CONFIG;
+
+ addonRootClass = QUOTE(ADDON);
+ };
+};
+
+#include "CfgVehicles.hpp"
diff --git a/addons/compat_ws/compat_ws_repair/script_component.hpp b/addons/compat_ws/compat_ws_repair/script_component.hpp
new file mode 100644
index 0000000000..1af928486c
--- /dev/null
+++ b/addons/compat_ws/compat_ws_repair/script_component.hpp
@@ -0,0 +1,3 @@
+#define SUBCOMPONENT repair
+#define SUBCOMPONENT_BEAUTIFIED Repair
+#include "..\script_component.hpp"
diff --git a/addons/compat_ws/config.cpp b/addons/compat_ws/config.cpp
index 32a3f6f73c..54a6df99ee 100644
--- a/addons/compat_ws/config.cpp
+++ b/addons/compat_ws/config.cpp
@@ -6,7 +6,7 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"data_f_lxWS_Loadorder"};
+ requiredAddons[] = {"data_f_lxWS_Loadorder", "ace_common"};
skipWhenMissingDependencies = 1;
author = ECSTRING(common,ACETeam);
authors[] = {"Mike"};
@@ -15,4 +15,5 @@ class CfgPatches {
};
};
+#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"
diff --git a/addons/cookoff/stringtable.xml b/addons/cookoff/stringtable.xml
index 15d2d2adec..838b3490bb 100644
--- a/addons/cookoff/stringtable.xml
+++ b/addons/cookoff/stringtable.xml
@@ -23,6 +23,7 @@
차량 유폭 화재를 활성화합니다
Abilita incendio dei veicoli
Aktiviert Fahrzeug Munitionsbrand
+ Permettre l'incendie du véhicule
Enables vehicle cook-off fire effects.\nThis doesn't include ammunition detonations.
@@ -31,6 +32,7 @@
차량 유폭 효과를 활성화합니다.\n여기엔 탄약 유폭이 포함되지 않습니다.
Abilita effetti di incendio del veicolo dovuto all'esplosione delle munizioni.\nQuesto non include gli effetti di esplosione.
Aktiviert Fahrzeug Brandeffekte durch Durchzündung.\nExplosionseffekte sind nicht mit einbegriffen.
+ Permet d'obtenir des effets de feu de véhicule à partir de munitions qui explosent.\nCela n'inclut pas les effets d'explosion.
Vehicle cook-off fire duration multiplier
@@ -39,6 +41,7 @@
차량 유폭 화재 지속 시간 계수
Coefficiente di durata incendio dei veicoli
Fahrzeugbrand Dauer-Multiplikator
+ Coefficient de durée d'incendie du véhicule
Multiplier for how long vehicle cook-off fire lasts.\nSetting to 0 will disable vehicle cook-off fire.
@@ -47,6 +50,7 @@
차량 유폭 화재가 지속되는 시간에 대한 계수입니다.\n0으로 설정하면 차량 쿸오프 화재가 비활성화됩니다.
Coefficiente di durata degli incendi dei veicoli.\nImpostarlo su 0 disabilita incendi dei veicoli.
Multiplikator der Fahrzeugbrand Dauer.\nIhn auf 0 zu setzen wird Munitionsbrände deaktivieren.
+ Coefficient de durée des feux de véhicules.\nLa valeur 0 désactive les feux de véhicules.
Vehicle cook-off fire probability multiplier
@@ -55,6 +59,7 @@
차량 유폭 화재 확률 계수
Probabilità di incendio dei veicoli
Fahrzeug Munitionsbrand Wahrscheinlichkeit-Multiplikator
+ Probabilité d'incendies de véhicules
Multiplier for vehicle cook-off fire probability. Higher value results in higher cook-off probability.\nSetting to 0 will disable vehicle cook-off fire.
@@ -63,6 +68,7 @@
차량 유폭 화재 확률에 대한 계수입니다. 값이 높을 수록 유폭 확률이 높아집니다.\n0으로 설정하면 차량 유폭 화재가 비활성화됩니다.
Coefficiente di probabilità degli incendi dei veicoli.\nValori maggiori aumentano la probabilità di incendi.\nImpostarlo su 0 disabilita incendi dei veicoli.
Multiplikator der Fahrzeugbrand Wahrscheinlichkeit.\nHöhere Werte erhöhen die Wahrscheinlichkeit.\nEin Null-Wert wird Munitionsbrände deaktivieren.
+ Coefficient de probabilité des incendies de véhicules.\nLes valeurs élevées augmentent la probabilité des incendies.\nLa valeur 0 désactive les incendies de véhicules.
Destroy vehicles after cook-off
@@ -96,6 +102,7 @@
차량 내 탄약 유폭 활성화
Abilita esplosioni delle munizioni dei veicoli
Aktiviert Fahrzeug Munitionsdurchzündung
+ Permet l'explosion des munitions des véhicules
Enables cooking off of vehicle ammunition. Fires ammunition projectiles while vehicle has ammunition remaining.\nThis doesn't include fire effects.
@@ -104,6 +111,7 @@
차량 내 탄약 유폭을 활성화합니다. 차량에 탄약이 남아 있는 동안 탄약 발사체를 발사합니다.\n여기엔 화재 효과가 포함되지 않습니다.
Abilita l'esplosione delle munizioni dei veicoli. Spara via pezzi di munizioni se il veicolo ha ancora munizioni rimanenti.\nNon include gli effetti di fuoco.
Aktiviert Durchzündung von Fahrzeugmunition. Schleudert Munitionsfragmente umher wenn das Fahrzeug noch Munition an Bord hat.\nBrandeffekte sind nicht mit einbegriffen.
+ Permet l'explosion des munitions du véhicule. Tire des morceaux de munitions si le véhicule a encore des munitions restantes.\nIl n'y a pas d'effets de feu.
Enable ammo box cook-off
@@ -127,6 +135,7 @@
탄약 상자 유폭을 활성화합니다.\n여기엔 화재 효과가 포함되지 않습니다.
Abilita esplosioni delle casse di munizioni.\nNon include effetti di fuoco.
Aktiviert Munitionskisten Durchzündung.\nBrandeffekte sind nicht mit einbegriffen.
+ Permet l'explosion des caisses de munitions.\nN'inclut pas les effets de feu.
Ammo cook-off duration multiplier
@@ -135,6 +144,7 @@
탄약 유폭 시간 계수
Coefficiente di durata esplisioni di munizioni
Fahrzeug Munitionsdurchzündung Dauer-Multiplikator
+ Coefficient de durée d'explosion des munitions
Multiplier for how long ammunition cook-off lasts, for both vehicles and ammo boxes.\nSetting to 0 will disable ammo cook-off for both vehicles and ammo boxes.
@@ -143,6 +153,7 @@
차량과 탄약 상자 모두에 대해 탄약 유폭이 지속되는 시간에 대한 계수입니다.\n0으로 설정하면 차량과 탄약 상자 모두에 대해 탄약 유폭이 비활성화됩니다.
Coefficiente della durata di esplosioni delle munizioni, sia per veicoli che casse.\nImpostarlo su 0 disabilita esplosioni di veicoli e casse.
Multiplikator der Munitionsdurchzündungs-Dauer, gilt für Fahrzeuge und Munitionskisten.\nIhn auf 0 zu setzen wird Durchzünden deaktivieren.
+ Coefficient de durée d'explosion des munitions pour les véhicules et les caisses.\nLa valeur 0 désactive les explosions des véhicules et des caisses.
Enable ammo removal during cook-off
diff --git a/addons/csw/functions/fnc_getLoadActions.sqf b/addons/csw/functions/fnc_getLoadActions.sqf
index 2b28d2dbd6..59b368b368 100644
--- a/addons/csw/functions/fnc_getLoadActions.sqf
+++ b/addons/csw/functions/fnc_getLoadActions.sqf
@@ -32,7 +32,8 @@ private _condition = {
params ["_target", "_player", "_args"];
_args params ["_carryMag", "_turretPath", "", "_magSource"];
- ([_target, _turretPath, _carryMag, _magSource] call FUNC(reload_canLoadMagazine)) select 0
+ [_player, _target] call EFUNC(interaction,canInteractWithVehicleCrew) &&
+ {([_target, _turretPath, _carryMag, _magSource] call FUNC(reload_canLoadMagazine)) select 0}
};
private _cfgMagazines = configFile >> "CfgMagazines"; // Micro-optimization
diff --git a/addons/csw/functions/fnc_getUnloadActions.sqf b/addons/csw/functions/fnc_getUnloadActions.sqf
index dd119b0622..03f99cd65d 100644
--- a/addons/csw/functions/fnc_getUnloadActions.sqf
+++ b/addons/csw/functions/fnc_getUnloadActions.sqf
@@ -46,7 +46,9 @@ private _statement = {
private _condition = {
params ["_target", "_player", "_args"];
_args params ["_vehMag", "_turretPath", "_carryMag"];
- [_target, _turretPath, _player, _carryMag, _vehMag] call FUNC(reload_canUnloadMagazine)
+
+ [_player, _target] call EFUNC(interaction,canInteractWithVehicleCrew) &&
+ {[_target, _turretPath, _player, _carryMag, _vehMag] call FUNC(reload_canUnloadMagazine)}
};
private _actions = [];
diff --git a/addons/dogtags/stringtable.xml b/addons/dogtags/stringtable.xml
index 73d2d07e56..ff0af0db4e 100644
--- a/addons/dogtags/stringtable.xml
+++ b/addons/dogtags/stringtable.xml
@@ -13,7 +13,7 @@
Piastrina
兵籍牌
兵籍牌
- Dog Tag
+ Chapa de Identificação
Placa de identidad
Künye
@@ -29,7 +29,7 @@
Controlla Piastrina
檢查兵籍牌
检查兵籍牌
- Verificar Dog Tag
+ Verificar chapa de identificação
Verificar placa de identidad
Künyeyi Kontrol Et
@@ -77,7 +77,7 @@
Piastrina presa da %1...
從%1身上拿取兵籍牌...
从%1身上拿取兵籍牌...
- Dogtag pego de %1...
+ Chapa de identificação pega de %1...
Tomada placa de identidad de %1...
Künye %1 kişisinden alındı
@@ -93,7 +93,7 @@
Qualcun altro ha già preso la piastrina...
已經有人把他的兵籍牌拿走了...
已经有人把他的兵籍牌拿走了...
- Alguém já pegou essa dogtag...
+ Alguém já pegou essa chapa de identificação...
Alguien más ha tomado la placa de identidad
Başka biri zaten künyeyi almış
@@ -106,7 +106,7 @@
Indicatore su schermo per il controllo delle piastrine
Wyświetlacz ekranowy dla sprawdzania nieśmiertelników
Экран для проверки жетонов
- Tela de Exibição para verificar dogtags
+ Tela de exibição para verificar chapas de identificação
Visualización en pantalla de placa de identidad
Affichage à l'écran pour le contrôle des plaques.
Okno na obrazovce pro kontrolu známek
diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml
index b0630e3a43..1a6243464f 100644
--- a/addons/grenades/stringtable.xml
+++ b/addons/grenades/stringtable.xml
@@ -110,6 +110,7 @@
이 수류탄은 굴릴 수 없습니다. %1(으)로 전환되었습니다.
Granate kann nicht rollen, zu %1 gewechselt
Granata non può rotolare, cambiato a %1
+ Grenade ne peut pas rouler, passé à %1
M84 Stun Grenade
diff --git a/addons/hitreactions/stringtable.xml b/addons/hitreactions/stringtable.xml
index 251cd437bc..e60be5b353 100644
--- a/addons/hitreactions/stringtable.xml
+++ b/addons/hitreactions/stringtable.xml
@@ -24,6 +24,7 @@
플레이어가 무기를 떨굴 확률 (팔 피격)
Spieler Wahrscheinlichkeit, die Waffe fallen zu lassen (Arm Treffer)
Probabilità dei giocatori di far cadere l'arma (colpo al braccio)
+ Probabilité de lâcher l'arme (coup au bras)
Probabilidade do jogador de largar a arma após tiro no braço
@@ -33,6 +34,7 @@
인공지능이 무기를 떨굴 확률 (팔 피격)
KI-Wahrscheinlichkeit, die Waffe fallen zu lassen (Arm Treffer)
Probabilità dell'IA di far cadere l'arma (colpo al braccio)
+ Probabilité de l'IA de lâcher l'arme (coup au bras)
Probabilidade da IA de largar a arma após tiro no braço
diff --git a/addons/intelitems/CfgWeapons.hpp b/addons/intelitems/CfgWeapons.hpp
new file mode 100644
index 0000000000..727b163de2
--- /dev/null
+++ b/addons/intelitems/CfgWeapons.hpp
@@ -0,0 +1,17 @@
+class CfgWeapons {
+ class ACE_ItemCore;
+ class CBA_MiscItem_ItemInfo;
+
+ // Since base game doesn't support misc. items, this is needed to filling inventories in the editor
+ class GVAR(notepad_Item): ACE_ItemCore {
+ displayName = CSTRING(Notepad_DisplayName);
+ author = ECSTRING(common,ACETeam);
+ scope = 2;
+ scopeArsenal = 0;
+ descriptionShort = CSTRING(Notepad_Description);
+ picture = QPATHTOF(ui\notepad_ca.paa);
+ class ItemInfo: CBA_MiscItem_ItemInfo {
+ mass = 0.1;
+ };
+ };
+};
diff --git a/addons/intelitems/XEH_postInit.sqf b/addons/intelitems/XEH_postInit.sqf
index f416b3667e..f79ae9f636 100644
--- a/addons/intelitems/XEH_postInit.sqf
+++ b/addons/intelitems/XEH_postInit.sqf
@@ -1,5 +1,8 @@
#include "script_component.hpp"
+// Notepad item to magazine
+[QGVAR(notepad_Item), QXGVAR(notepad)] call EFUNC(common,registerItemReplacement);
+
// Only handle loadout change when on map or have open controls
["loadout", {
if (!visibleMap && {GVAR(controlsGroups) isEqualTo []}) exitWith {};
diff --git a/addons/intelitems/config.cpp b/addons/intelitems/config.cpp
index 3b9b37b5b6..1eafb3fe86 100644
--- a/addons/intelitems/config.cpp
+++ b/addons/intelitems/config.cpp
@@ -8,7 +8,7 @@ class CfgPatches {
QXGVAR(document),
QXGVAR(photo)
};
- weapons[] = {};
+ weapons[] = {QGVAR(notepad_Item)};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interact_menu", "ace_zeus"};
author = ECSTRING(common,ACETeam);
@@ -23,5 +23,6 @@ class CfgPatches {
#include "CfgEventHandlers.hpp"
#include "CfgEditorSubcategories.hpp"
#include "CfgMagazines.hpp"
+#include "CfgWeapons.hpp"
#include "CfgVehicles.hpp"
#include "gui.hpp"
diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp
index b3a0c1d37e..ab338c3f09 100644
--- a/addons/interaction/CfgVehicles.hpp
+++ b/addons/interaction/CfgVehicles.hpp
@@ -316,6 +316,12 @@ class CfgVehicles {
statement = QUOTE(_player call FUNC(renameGroupUI));
showDisabled =1;
};
+ class ACE_groupDropDistantUnits {
+ displayName = CSTRING(groupDropDistantUnits);
+ condition = QUOTE(call FUNC(canGroupDropDistantUnits));
+ exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting", "isNotOnLadder", "isNotRefueling"};
+ statement = QUOTE(call FUNC(groupDropDistantUnits));
+ };
};
class ACE_Equipment {
@@ -420,15 +426,11 @@ class CfgVehicles {
class GVAR(anims) {
class showBags {
phase = 0;
- // Rotate interactions with turret rotation
- positions[] = {
- "[0, -1.6, 0] vectorAdd ([[1, -1, 0.1], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)",
- "[0, -1.6, 0] vectorAdd ([[-1, -1, 0.1], [0, 0, 1], deg (_target animationPhase 'MainTurret')] call CBA_fnc_vectRotate3D)"
- };
selections[] = {"vhc_bags"};
items[] = {"B_Carryall_cbr", "B_Carryall_cbr"};
- name = "$STR_a3_cfgvehicleclasses_backpacks0";
- text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
+ distance = 3;
};
};
};
@@ -439,10 +441,10 @@ class CfgVehicles {
class GVAR(anims): GVAR(anims) {
class showBags {
phase = 0;
- selections[] = {"vhc_bags"};
+ positions[] = {"_target selectionPosition ['vhc_bags', 'FireGeometry', 'AveragePoint']"};
items[] = {"B_Carryall_cbr"};
- name = "$STR_BACKPACK_CONTAINER_NAME";
- text = "$STR_BACKPACK_CONTAINER_NAME";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
};
};
};
@@ -450,10 +452,10 @@ class CfgVehicles {
class GVAR(anims) {
class showBags {
phase = 0;
- selections[] = {"vhc_bags"};
+ positions[] = {"_target selectionPosition ['vhc_bags', 'FireGeometry', 'AveragePoint']"};
items[] = {"B_Carryall_cbr", "B_Carryall_cbr"};
- name = "$STR_a3_cfgvehicleclasses_backpacks0";
- text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
};
};
};
@@ -490,13 +492,13 @@ class CfgVehicles {
class GVAR(anims) {
class showBags {
phase = 0;
- selections[] = {"vhc_bags"};
+ positions[] = {"_target selectionPosition ['vhc_bags', 'FireGeometry', 'AveragePoint']"};
items[] = {"B_Carryall_cbr"};
- name = "$STR_BACKPACK_CONTAINER_NAME";
- text = "$STR_BACKPACK_CONTAINER_NAME";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
};
class showBags2: showBags {
- selections[] = {"vhc_bags2"};
+ positions[] = {"_target selectionPosition ['vhc_bags2', 'FireGeometry', 'AveragePoint']"};
};
};
};
@@ -511,8 +513,8 @@ class CfgVehicles {
selections[] = {"vhc_bags"};
positions[] = {"private _pos = _target selectionPosition 'vhc_bags'; _pos set [0, -(_pos select 0)]; _pos"}; // Mirror position to other side of vehicle
items[] = {"B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr"};
- name = "$STR_a3_cfgvehicleclasses_backpacks0";
- text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
};
};
};
@@ -534,8 +536,8 @@ class CfgVehicles {
phase = 0;
selections[] = {"vhc_bags"};
items[] = {"B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr"};
- name = "$STR_a3_cfgvehicleclasses_backpacks0";
- text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
};
};
};
@@ -546,8 +548,8 @@ class CfgVehicles {
phase = 0;
selections[] = {"vhc_bags"};
items[] = {"B_Carryall_cbr", "B_Carryall_cbr"};
- name = "$STR_a3_cfgvehicleclasses_backpacks0";
- text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
};
};
};
@@ -562,8 +564,8 @@ class CfgVehicles {
phase = 0;
selections[] = {"vhc_bags"};
items[] = {"B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr", "B_Carryall_cbr"};
- name = "$STR_a3_cfgvehicleclasses_backpacks0";
- text = "$STR_a3_cfgvehicleclasses_backpacks0";
+ name = "$STR_A3_B_Carryall_cbr0";
+ text = "$STR_A3_B_Carryall_cbr0";
};
};
};
diff --git a/addons/interaction/XEH_PREP.hpp b/addons/interaction/XEH_PREP.hpp
index 26d4cf4d00..2369570278 100644
--- a/addons/interaction/XEH_PREP.hpp
+++ b/addons/interaction/XEH_PREP.hpp
@@ -36,6 +36,8 @@ PREP(pullOutBody);
PREP(canRenameGroup);
PREP(renameGroupUI);
PREP(renameGroup);
+PREP(canGroupDropDistantUnits);
+PREP(groupDropDistantUnits);
// Weapon Attachments
PREP(getWeaponAttachmentsActions);
diff --git a/addons/interaction/functions/fnc_canGroupDropDistantUnits.sqf b/addons/interaction/functions/fnc_canGroupDropDistantUnits.sqf
new file mode 100644
index 0000000000..b13abc1039
--- /dev/null
+++ b/addons/interaction/functions/fnc_canGroupDropDistantUnits.sqf
@@ -0,0 +1,20 @@
+#include "..\script_component.hpp"
+/*
+ * Author: PabstMirror
+ * Checks if the unit can drop distant units from their group
+ *
+ * Arguments:
+ * 0: Unit