diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml
index d9df3f16a2..440d26e867 100644
--- a/addons/common/stringtable.xml
+++ b/addons/common/stringtable.xml
@@ -1330,37 +1330,5 @@
玩家与AI
玩家與AI
-
- Players only
- Игроков
- Tylko dla graczy
- Solo jugadores
- Nur Spieler
- Pouze hráči
- Somente jogadores
- Joueur uniquement
- Csak játékosok
- Solo giocatori
- プレイヤーのみ
- 플레이어만
- 只限玩家
- 只限玩家
-
-
- Players and AI
- Игроков и ботов
- Gracze oraz AI
- Jugadores e IA
- Spieler und KI
- Hráči a AI
- Jogadores e IA
- Joueurs et IA
- Játékosok és AI
- Giocatori ed IA
- プレイヤーと AI
- 플레이어 및 인공지능
- 玩家与AI
- 玩家與AI
-
diff --git a/addons/csw/Cfg3den.hpp b/addons/csw/Cfg3den.hpp
new file mode 100644
index 0000000000..dfac0f5475
--- /dev/null
+++ b/addons/csw/Cfg3den.hpp
@@ -0,0 +1,38 @@
+class ctrlCombo;
+class Cfg3DEN {
+ class Attributes {
+ class Title;
+ class Combo: Title {
+ class Controls {
+ class Title;
+ class Value;
+ };
+ };
+ class GVAR(assemblyModeControl): Combo {
+ class Controls: Controls {
+ class Title: Title {};
+ class Value: Value {
+ class Items {
+ class Disable {
+ text = "$STR_DISABLED";
+ value = 0;
+ };
+ class Enable {
+ text = "$STR_CONFIG_JOYSTICK_ENABLED";
+ value = 1;
+ };
+ class EnableAndEmpty {
+ text = CSTRING(eden_enableAndEmpty);
+ value = 2;
+ };
+ class Default {
+ text = "$STR_VEHICLE_DEFAULT";
+ value = 3;
+ default = 1;
+ };
+ };
+ };
+ };
+ };
+ };
+};
diff --git a/addons/csw/CfgVehicles.hpp b/addons/csw/CfgVehicles.hpp
index 9c2ea542ee..ecd438fa64 100644
--- a/addons/csw/CfgVehicles.hpp
+++ b/addons/csw/CfgVehicles.hpp
@@ -1,17 +1,3 @@
-#define ENABLE_CSW_ATTRIBUTE class Attributes { \
- class GVAR(enableCSW) { \
- property = QGVAR(enableCSW); \
- control = "Checkbox"; \
- displayName = CSTRING(eden_enableCSW); \
- tooltip = CSTRING(eden_enableCSW_tooltip); \
- expression = QUOTE(_this setVariable[ARR_3(QQGVAR(enableCSW), _value, true)];); \
- typeName = "BOOL"; \
- condition = "objectVehicle"; \
- defaultValue = true; \
- }; \
- }
-
-
class CfgVehicles {
class Man;
class CAManBase: Man {
@@ -37,14 +23,14 @@ class CfgVehicles {
accuracy = 1000;
destrType = "DestructDefault";
- ace_dragging_canDrag = 1;
- ace_dragging_dragPosition[] = {0, 2, 0};
- ace_dragging_canCarry = 1;
- ace_dragging_carryPosition[] = {0, 2, 0};
+ EGVAR(dragging,canDrag) = 1;
+ EGVAR(dragging,dragPosition)[] = {0, 2, 0};
+ EGVAR(dragging,canCarry) = 1;
+ EGVAR(dragging,carryPosition)[] = {0, 2, 0};
class ACE_Actions {
class ACE_MainActions {
- displayName = CSTRING(Tripod_displayName);
+ displayName = CSTRING(genericTripod_displayName);
selection = "";
distance = 2.5;
condition = "true";
@@ -90,7 +76,7 @@ class CfgVehicles {
disassembleTo = QGVAR(kordCarryTripod);
};
};
- class GVAR(sag30Tripod): GVAR(m3Tripod) {
+ class GVAR(sag30Tripod): GVAR(baseTripod) {
author = ECSTRING(common,ACETeam);
scope = 2;
model = QPATHTOEF(apl,ace_csw_tripod_ags30.p3d);
@@ -112,12 +98,12 @@ class CfgVehicles {
author = ECSTRING(common,ACETeam);
scope = 2;
model = QPATHTOEF(apl,ace_csw_tripod_spg9.p3d);
- displayName = CSTRING(spg9Tripod_displayName);
+ displayName = CSTRING(spg9_Tripod);
class ADDON {
disassembleTo = QGVAR(spg9CarryTripod);
};
};
- class GVAR(mortarBaseplate): GVAR(m3Tripod) {
+ class GVAR(mortarBaseplate): GVAR(baseTripod) {
author = ECSTRING(common,ACETeam);
scope = 2;
model = QPATHTOEF(apl,ACE_CSW_mortarBaseplate.p3d);
@@ -145,6 +131,7 @@ class CfgVehicles {
class StaticMGWeapon: StaticWeapon {};
class HMG_01_base_F: StaticMGWeapon {
+ // ENABLE_CSW_ATTRIBUTE;
class ADDON {
enabled = 1;
proxyWeapon = QGVAR(HMG_Static);
@@ -179,6 +166,7 @@ class CfgVehicles {
class GMG_TriPod;
class GMG_01_base_F: GMG_TriPod {
+ // ENABLE_CSW_ATTRIBUTE;
class ADDON {
enabled = 1;
proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
@@ -212,6 +200,7 @@ class CfgVehicles {
class AT_01_base_F: StaticMGWeapon {
+ // ENABLE_CSW_ATTRIBUTE;
class ADDON {
enabled = 1;
proxyWeapon = QGVAR(Titan_AT_Static);
@@ -225,6 +214,7 @@ class CfgVehicles {
};
class AA_01_base_F: StaticMGWeapon {
+ // ENABLE_CSW_ATTRIBUTE;
class ADDON {
enabled = 1;
proxyWeapon = QGVAR(Titan_AA_Static); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
@@ -240,6 +230,7 @@ class CfgVehicles {
class StaticMortar: StaticWeapon {};
class Mortar_01_base_F: StaticMortar {
+ // ENABLE_CSW_ATTRIBUTE;
class ADDON {
enabled = 1;
magazineLocation = "";
diff --git a/addons/csw/CfgWeapons.hpp b/addons/csw/CfgWeapons.hpp
index 6c5db3796c..c3b0d3354a 100644
--- a/addons/csw/CfgWeapons.hpp
+++ b/addons/csw/CfgWeapons.hpp
@@ -47,14 +47,14 @@ class CfgWeapons {
modes[] = {};
picture = QPATHTOF(UI\Tripod_Icon.paa);
};
-
+
class GVAR(kordCarryTripodLow): GVAR(kordCarryTripod) {
class ADDON {
deploy = QGVAR(kordTripodLow);
};
displayName = CSTRING(kordTripodFoldedLow_displayName);
};
-
+
class GVAR(m220CarryTripod): Launcher_Base_F {
class ADDON {
type = "mount";
@@ -72,7 +72,7 @@ class CfgWeapons {
modes[] = {};
picture = QPATHTOF(UI\Tripod_Icon.paa);
};
-
+
class GVAR(spg9CarryTripod): Launcher_Base_F {
class ADDON {
type = "mount";
@@ -83,14 +83,14 @@ class CfgWeapons {
class WeaponSlotsInfo: WeaponSlotsInfo {
mass = 260;
};
- displayName = CSTRING(spg9TripodFolded_displayName);
+ displayName = CSTRING(spg9_TripodFolded);
author = ECSTRING(common,ACETeam);
scope = 2;
model = QPATHTOEF(apl,ACE_CSW_Bag.p3d);
modes[] = {};
picture = QPATHTOF(UI\Tripod_Icon.paa);
};
-
+
class GVAR(sag30CarryTripod): Launcher_Base_F {
class ADDON {
type = "mount";
@@ -108,7 +108,7 @@ class CfgWeapons {
modes[] = {};
picture = QPATHTOF(UI\Tripod_Icon.paa);
};
-
+
class GVAR(carryMortarBaseplate): Launcher_Base_F {
class ADDON {
type = "mount";
@@ -119,7 +119,7 @@ class CfgWeapons {
class WeaponSlotsInfo: WeaponSlotsInfo {
mass = 290; // M3A1 baseblate weight
};
- displayName = CSTRING(m224MortarBaseplate_displayName);
+ displayName = CSTRING(mortarBaseplateBag_displayName);
author = ECSTRING(common,ACETeam);
scope = 2;
model = QPATHTOEF(apl,ACE_CSW_Bag.p3d);
@@ -225,26 +225,18 @@ class CfgWeapons {
class WeaponSlotsInfo: WeaponSlotsInfo {
mass = 620; // M252 Mortar Weight
};
- displayName = CSTRING(m224MortarBag_displayName);
+ displayName = CSTRING(mk6MortarBag_displayName);
author = ECSTRING(common,ACETeam);
scope = 2;
model = QPATHTOEF(apl,ACE_CSW_Bag.p3d);
modes[] = {};
picture = QPATHTOF(UI\StaticHGMG_Icon.paa);
};
-
- // Proxy Weapons
- class HMG_static;
- class GVAR(HMG_Static): HMG_Static {
- magazineReloadTime = 0.5;
- };
-
- class GMG_20mm;
- class GVAR(GMG_20mm): GMG_20mm {
- magazineReloadTime = 0.5;
- };
-
+ // Proxy Weapons
+ CREATE_CSW_PROXY(HMG_Static);
+ CREATE_CSW_PROXY(GMG_20mm);
+
class missiles_titan_static;
class EGVAR(javelin,Titan_Static): missiles_titan_static {}; // if ace_javelin does not exist, this will just inherit from the base weapon
class GVAR(Titan_AT_Static): EGVAR(javelin,Titan_Static) {
@@ -254,8 +246,8 @@ class CfgWeapons {
class GVAR(Titan_AA_Static) : missiles_titan_static {
magazineReloadTime = 0.5;
};
-
-
+
+
/*
class GVAR(staticAutoHMGCarry): Launcher_Base_F {
class ADDON {
diff --git a/addons/csw/XEH_PREP.hpp b/addons/csw/XEH_PREP.hpp
index 455ffa5e0a..7bde8c3c0f 100644
--- a/addons/csw/XEH_PREP.hpp
+++ b/addons/csw/XEH_PREP.hpp
@@ -1,5 +1,7 @@
TRACE_1("",QUOTE(ADDON));
+PREP(aceRearmGetCarryMagazines);
+
PREP(ai_handleFired);
PREP(assemble_canDeployTripod);
diff --git a/addons/csw/config.cpp b/addons/csw/config.cpp
index 4aef60630b..9478e7e798 100644
--- a/addons/csw/config.cpp
+++ b/addons/csw/config.cpp
@@ -1,4 +1,5 @@
#include "script_component.hpp"
+#include "script_config_macros_csw.hpp"
class CfgPatches {
class ADDON {
@@ -14,6 +15,7 @@ class CfgPatches {
};
};
+#include "Cfg3den.hpp"
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"
diff --git a/addons/csw/cswDesign.txt b/addons/csw/cswDesign.txt
deleted file mode 100644
index 960fb43bf6..0000000000
--- a/addons/csw/cswDesign.txt
+++ /dev/null
@@ -1,53 +0,0 @@
-Settings:
-
- defaultBehaviour:
- Normal - Untouched [full mags, normal backpack disassemble]
- Advanced - [Realistic mags, side unloading]
- handleExtraMagazines
- Extra magazines on ground
- Ignore extra magazines
-
-Vehicle:
- 3den attribute controls if [useSetting, normal or advanced]
-
-configs:
-
-CfgWeapons:
- class GVAR(m3CarryTripod): Launcher_Base_F {
- class ADDON {
- type = "mount";
- deployTime = 3;
- pickupTime = 3;
- deploy = QGVAR(m3Tripod);
- };
-
- class GVAR(staticATCarry): Launcher_Base_F {
- class ADDON {
- type = "weapon";
- deployTime = 8;
- pickupTime = 15;
- class assembleTo {
- tripodCfgVehicle = staticCfgVehicle;
- };
- };
-
-
-
-
-CfgVehicles:
- class GVAR(m3Tripod): // Tripod Example
- class ADDON {
- disassembleTo = QGVAR(m3CarryTripod);
-
-
- class Mortar_01_base_F: // Static Weapon Example
- class ADDON {
- enabled = 1;
- magazineLocation = "";
- disassembleWeapon = ""; // secondary weapon classname
- disassembleTurret = ""; // CfgVehicle
- desiredAmmo = 100; //
- ammoLoadTime = 5;
- ammoUnloadTime = 5;
-
-
diff --git a/addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf b/addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf
new file mode 100644
index 0000000000..ac64f636e8
--- /dev/null
+++ b/addons/csw/functions/fnc_aceRearmGetCarryMagazines.sqf
@@ -0,0 +1,50 @@
+#include "script_component.hpp"
+/*
+ * Author: PabstMirror
+ * Helper function for ace_rearm; Gets magazines that should be loaded by csw
+ *
+ * Arguments:
+ * 0: Vehicle