diff --git a/.hemtt/project.toml b/.hemtt/project.toml
index 5aa1460c0..ed381d0e1 100644
--- a/.hemtt/project.toml
+++ b/.hemtt/project.toml
@@ -27,6 +27,7 @@ exclude = [
"xeh/fnc_initdisplay.sqf",
"xeh/fnc_startloadingscreen.sqf",
"xeh/fnc_endloadingscreen.sqf",
+ "/test_"
]
[hemtt.config]
diff --git a/addons/common/fnc_getTerrainProfile.sqf b/addons/common/fnc_getTerrainProfile.sqf
index 3e39b72f6..47b5c90ff 100644
--- a/addons/common/fnc_getTerrainProfile.sqf
+++ b/addons/common/fnc_getTerrainProfile.sqf
@@ -27,7 +27,7 @@ _posA = _posA call CBA_fnc_getPos;
_posB = _posB call CBA_fnc_getPos;
_posA set [2,0]; _posB set [2,0];
-DEFAULT_PARAM(2, _resolution,10);
+DEFAULT_PARAM(2,_resolution,10);
private _angle = [_posA, _posB] call BIS_fnc_dirTo;
private _2Ddistance = [_posA, _posB] call BIS_fnc_distance2D;
diff --git a/addons/jam/jam_vn/CfgMagazineWells.hpp b/addons/jam/jam_vn/CfgMagazineWells.hpp
new file mode 100644
index 000000000..be09b0e9c
--- /dev/null
+++ b/addons/jam/jam_vn/CfgMagazineWells.hpp
@@ -0,0 +1,278 @@
+class CfgMagazineWells {
+
+ class CBA_12g_6rnds {
+ VN_rounds[] = {
+ "vn_m1897_buck_mag",
+ "vn_m1897_fl_mag"
+ };
+ };
+
+ class CBA_12g_2rnds {
+ VN_rounds[] = {
+ "vn_izh54_mag",
+ "vn_izh54_so_mag"
+ };
+ };
+
+ class CBA_30Carbine_M1Carbine {
+ VN_mags[] = {
+ "vn_carbine_15_mag",
+ "vn_carbine_15_t_mag",
+ "vn_carbine_30_mag",
+ "vn_carbine_30_t_mag"
+ };
+ };
+
+ class CBA_3006_BAR {
+ VN_mags[] = {
+ "vn_m1918_mag",
+ "vn_m1918_t_mag"
+ };
+ };
+
+ class CBA_3006_Garand {
+ VN_clips[] = {
+ "vn_m1_garand_mag",
+ "vn_m1_garand_t_mag"
+ };
+ };
+
+ class CBA_3006_Spring {
+ VN_clips[] = {
+ "vn_m1903_mag",
+ "vn_m1903_t_mag"
+ };
+ };
+
+ class CBA_32ACP_Vz61 {
+ VN_mags[] = {
+ "vn_vz61_mag"
+ };
+ };
+ class CBA_32ACP_Welrod {
+ VN_mags[] = {
+ "vn_welrod_mag"
+ };
+ };
+
+ class CBA_380ACP_PPK {
+ VN_mags[] = {
+ "vn_ppk_mag"
+ };
+ };
+
+ class CBA_38_Special_6rnds {
+ VN_rounds[] = {
+ "vn_m10_mag"
+ };
+ };
+
+ class CBA_45ACP_1911 {
+ VN_mags[] = {
+ "vn_m1911_mag"
+ };
+ };
+
+ class CBA_45ACP_Grease {
+ VN_mags[] = {
+ "vn_m3a1_mag",
+ "vn_m3a1_t_mag"
+ };
+ };
+
+ class CBA_45ACP_Thompson_Stick {
+ VN_mags[] = {
+ "vn_m1a1_20_mag",
+ "vn_m1a1_20_t_mag",
+ "vn_m1a1_30_mag",
+ "vn_m1a1_30_t_mag"
+ };
+ };
+
+ class CBA_45ACP_Thompson_Drum {
+ VN_mags[] = {
+ "vn_m1928_mag",
+ "vn_m1928_t_mag"
+ };
+ };
+
+ class CBA_556x45_STANAG {
+ VN_mags[] = {
+ "vn_m16_20_mag",
+ "vn_m16_20_t_mag",
+ "vn_m16_30_mag",
+ "vn_m16_30_t_mag",
+ "vn_m16_40_mag",
+ "vn_m16_40_t_mag"
+ };
+ };
+
+ class CBA_762x25_PPS {
+ VN_mags[] = {
+ "vn_pps_mag",
+ "vn_pps_t_mag"
+ };
+ };
+
+ class CBA_762x25_PPSh_Drum {
+ VN_mags[] = {
+ "vn_ppsh41_71_mag",
+ "vn_ppsh41_71_t_mag"
+ };
+ };
+
+ class CBA_762x25_PPSh_Stick {
+ VN_mags[] = {
+ "vn_ppsh41_35_mag",
+ "vn_ppsh41_35_t_mag"
+ };
+ };
+
+ class CBA_762x25_TT {
+ VN_mags[] = {
+ "vn_tt33_mag"
+ };
+ };
+
+ class CBA_762x38R_Nagant {
+ VN_rounds[] = {
+ "vn_m1895_mag"
+ };
+ };
+
+ class CBA_762x39_AK {
+ VN_mags[] = {
+ "vn_kbkg_mag",
+ "vn_kbkg_t_mag",
+ "vn_type56_mag",
+ "vn_type56_t_mag"
+ };
+ };
+
+ class CBA_762x39_SKS_Clip {
+ VN_clips[] = {
+ "vn_sks_mag",
+ "vn_sks_t_mag"
+ };
+ };
+
+ class CBA_762x51_5rnds {
+ VN_rounds[] = {
+ "vn_m40a1_mag",
+ "vn_m40a1_t_mag"
+ };
+ };
+
+ class CBA_762x51_FAL {
+ VN_mags[] = {
+ "vn_l1a1_10_mag",
+ "vn_l1a1_10_t_mag",
+ "vn_l1a1_20_mag",
+ "vn_l1a1_20_t_mag",
+ "vn_l1a1_30_mag",
+ "vn_l1a1_30_t_mag",
+ "vn_l1a1_30_02_mag",
+ "vn_l1a1_30_02_t_mag"
+ };
+ };
+
+ class CBA_762x51_LINKS {
+ VN_belts[] = {
+ "vn_m60_100_mag"
+ };
+ };
+
+ class CBA_762x51_M14 {
+ VN_mags[] = {
+ "vn_m14_10_mag",
+ "vn_m14_10_t_mag",
+ "vn_m14_mag",
+ "vn_m14_t_mag"
+ };
+ };
+
+ class CBA_762x54R_DPM {
+ VN_mags[] = {
+ "vn_dp28_mag"
+ };
+ };
+
+ class CBA_762x54R_LINKS {
+ VN_belts[] = {
+ "vn_pk_100_mag"
+ };
+ };
+
+ class CBA_762x54R_Mosin {
+ VN_clips[] = {
+ "vn_m38_mag",
+ "vn_m38_t_mag"
+ };
+ };
+
+ class CBA_762x54R_SVD {
+ VN_mags[] = {
+ "vn_svd_mag",
+ "vn_svd_t_mag"
+ };
+ };
+
+ class CBA_763x25_M712 {
+ VN_mags[] = {
+ "vn_m712_mag"
+ };
+ };
+
+ class CBA_792x57_K98 {
+ VN_mags[] = {
+ "vn_k98k_mag",
+ "vn_k98k_t_mag"
+ };
+ };
+
+ class CBA_792x57_LINKS {
+ VN_drums[] = {
+ "vn_mg42_50_mag",
+ "vn_mg42_50_t_mag"
+ };
+ };
+
+ class CBA_9x18_PM {
+ VN_mags[] = {
+ "vn_pm_mag"
+ };
+ };
+
+ class CBA_9x19_HiPower {
+ VN_mags[] = {
+ "vn_hp_mag"
+ };
+ };
+
+ class CBA_9x19_MP40 {
+ VN_mags[] = {
+ "vn_mp40_mag",
+ "vn_mp40_t_mag"
+ };
+ };
+
+ class CBA_9x19_P38 {
+ VN_mags[] = {
+ "vn_p38_mag"
+ };
+ };
+
+ class CBA_9x19_STEN {
+ VN_mags[] = {
+ "vn_sten_mag",
+ "vn_sten_t_mag"
+ };
+ };
+
+ class CBA_RPG7 {
+ VN_rockets[] = {
+ "vn_rpg7_mag"
+ };
+ };
+
+};
diff --git a/addons/jam/jam_vn/CfgWeapons.hpp b/addons/jam/jam_vn/CfgWeapons.hpp
new file mode 100644
index 000000000..85b838a95
--- /dev/null
+++ b/addons/jam/jam_vn/CfgWeapons.hpp
@@ -0,0 +1,163 @@
+class CfgWeapons {
+ class Rifle_Base_F;
+
+ class UGL_F;
+
+ class vn_rifle: Rifle_Base_F {
+ class vn_ugl: UGL_F {
+ magazineWell[] = {};
+ };
+ };
+
+ class vn_m16: vn_rifle {
+ magazineWell[] += {"CBA_556x45_STANAG","CBA_556x45_STANAG_L","CBA_556x45_STANAG_XL","CBA_556x45_STANAG_2D","CBA_556x45_STANAG_2D_XL"};
+ };
+
+ class vn_rifle762: vn_rifle {};
+
+ class vn_k98k: vn_rifle762 {
+ magazineWell[] += {"CBA_792x57_K98"};
+ };
+
+ class vn_m1carbine: vn_rifle762 {
+ magazineWell[] += {"CBA_30Carbine_M1Carbine"};
+ };
+
+ class vn_m1_garand: vn_rifle762 {
+ magazineWell[] += {"CBA_3006_Garand"};
+ };
+
+ class vn_m14: vn_rifle762 {
+ magazineWell[] += {"CBA_762x51_M14", "CBA_762x51_M14_L", "CBA_762x51_M14_XL"};
+ };
+
+ class vn_sks: vn_rifle762 {
+ magazineWell[] += {"CBA_762x39_SKS"};
+ };
+
+ class vn_type56: vn_rifle762 {
+ magazineWell[] += {"CBA_762x39_AK","CBA_762x39_RPK"};
+ };
+
+ class vn_rifle_boltaction_base: vn_rifle762 {};
+
+ class m40a1: vn_rifle_boltaction_base {
+ magazineWell[] += {"CBA_762x51_5rnds"};
+ };
+
+ class vn_rifle_boltaction_clip_base: vn_rifle_boltaction_base {};
+
+ class vn_m38: vn_rifle_boltaction_clip_base {
+ magazineWell[] += {"CBA_762x54R_Mosin"};
+ };
+
+ class vn_lmg: vn_rifle {};
+
+ class vn_dp28: vn_lmg {
+ magazineWell[] += {"CBA_762x54R_DPM"};
+ };
+
+ class vn_m60: vn_lmg {
+ magazineWell[] += {"CBA_762x51_LINKS"};
+ };
+
+ class vn_pk: vn_lmg {
+ magazineWell[] += {"CBA_762x54R_LINKS"};
+ };
+
+ class vn_smg: vn_rifle {};
+
+ class vn_m1a1_tommy: vn_smg {
+ magazineWell[] += {"CBA_45ACP_Thompson_Stick"};
+ };
+
+ class vn_m1928_tommy: vn_m1a1_tommy {
+ magazineWell[] += {"CBA_45ACP_Thompson_Drum", "CBA_45ACP_Thompson_Stick"};
+ };
+
+ class vn_m3a1: vn_smg {
+ magazineWell[] += {"CBA_45ACP_Grease"};
+ };
+
+ class vn_mp40: vn_smg {
+ magazineWell[] += {"CBA_9x19_MP40"};
+ };
+
+ class vn_pps52: vn_smg {
+ magazineWell[] += {"CBA_762x25_PPS"};
+ };
+
+ class vn_mc10: vn_pps52 {
+ magazineWell[] = {};
+ };
+
+ class vn_ppsh41: vn_smg {
+ magazineWell[] += {"CBA_762x25_PPSh_Drum", "CBA_762x25_PPSh_Stick"};
+ };
+
+ class vn_sten: vn_smg {
+ magazineWell[] += {"CBA_9x19_STEN"};
+ };
+
+ class vn_vz61: vn_smg {
+ magazineWell[] += {"CBA_32ACP_Vz61"};
+ };
+
+ class vn_shotgun: vn_rifle {};
+
+ class vn_izh54: vn_shotgun {
+ magazineWell[] += {"CBA_12g_2rnds", "CBA_12g_1rnd"};
+ };
+
+ class vn_m1897: vn_shotgun {
+ magazineWell[] += {"CBA_12g_6rnds", "CBA_12g_5rnds", "CBA_12g_4rnds", "CBA_12g_3rnds", "CBA_12g_2rnds", "CBA_12g_1rnd"};
+ };
+
+ class vn_pistol;
+
+ class vn_hd: vn_pistol {};
+
+ class vn_m1911: vn_pistol {
+ magazineWell[] += {"CBA_45ACP_1911"};
+ };
+
+ class vn_hp: vn_m1911 {
+ magazineWell[] = {"CBA_9x19_HiPower"};
+ };
+
+ class vn_mk22: vn_pistol {};
+
+ class vn_m10: vn_mk22 {
+ magazineWell[] += {"CBA_38_Special_6rnds"};
+ };
+
+ class vn_m712: vn_pistol {
+ magazineWell[] += {"CBA_763x25_M712"};
+ };
+
+ class vn_m1895: vn_mk22 {
+ magazineWell[] += {"CBA_762x38R_Nagant"};
+ };
+
+ class vn_pm: vn_pistol {
+ magazineWell[] += {"CBA_9x18_PM"};
+ };
+
+ class vn_tt33: vn_pm {
+ magazineWell[] = {"CBA_762x25_TT"};
+ };
+
+ class vn_vz61_p: vn_pistol {
+ magazineWell[] += {"CBA_32ACP_Vz61"};
+ };
+
+ class vn_welrod: vn_hd {
+ magazineWell[] += {"CBA_32ACP_Welrod"};
+ };
+
+ class vn_Launcher_Base_F;
+
+ class vn_rpg7: vn_Launcher_Base_F {
+ magazineWell[] += {"CBA_RPG7"};
+ };
+};
diff --git a/addons/jam/jam_vn/config.cpp b/addons/jam/jam_vn/config.cpp
new file mode 100644
index 000000000..d76103cee
--- /dev/null
+++ b/addons/jam/jam_vn/config.cpp
@@ -0,0 +1,22 @@
+#include "script_component.hpp"
+
+class CfgPatches {
+ class SUBADDON {
+ name = CSTRING(component);
+ units[] = {};
+ weapons[] = {};
+ requiredVersion = REQUIRED_VERSION;
+ requiredAddons[] = {
+ "cba_jam",
+ "loadorder_f_vietnam"
+ };
+ author = "$STR_CBA_Author";
+ authors[] = {};
+ url = "$STR_CBA_URL";
+ skipWhenMissingDependencies = 1;
+ VERSION_CONFIG;
+ };
+};
+
+#include "CfgMagazineWells.hpp"
+#include "CfgWeapons.hpp"
diff --git a/addons/jam/jam_vn/script_component.hpp b/addons/jam/jam_vn/script_component.hpp
new file mode 100644
index 000000000..a1a93ff00
--- /dev/null
+++ b/addons/jam/jam_vn/script_component.hpp
@@ -0,0 +1,2 @@
+#define SUBCOMPONENT vn
+#include "..\script_component.hpp"
diff --git a/addons/jr/fnc_compatibleItems.sqf b/addons/jr/fnc_compatibleItems.sqf
index e618eefbd..fb2db72d4 100644
--- a/addons/jr/fnc_compatibleItems.sqf
+++ b/addons/jr/fnc_compatibleItems.sqf
@@ -37,13 +37,13 @@ if !(isClass _weaponConfig) exitWith {
[]
};
+private _typeFilterExists = !isNil "_typefilter";
+
// Convert filter into number (if string)
-if (_typefilter isEqualType "") then {
+if (_typeFilterExists && {_typefilter isEqualType ""}) then {
_typefilter = [-1, 101, 201, 301, 302] param [["", "muzzle", "optic", "pointer", "bipod"] find _typefilter, -1];
};
-private _typeFilterExists = !isNil "_typefilter";
-
// Check if valid type filter
if (_typeFilterExists && {!(_typefilter in [101, 201, 301, 302])}) exitWith {[]};
@@ -52,7 +52,7 @@ if (isNil QGVAR(namespace)) then {
};
// Get cached result, if it exists
-private _cachekey = format ["%1#%2", _weapon, ["all", _typefilter] select _typeFilterExists];
+private _cachekey = format ["%1#%2", _weapon, if (_typeFilterExists) then {_typefilter} else {"all"} ];
private _compatibleItems = GVAR(namespace) get _cachekey;
if (!isNil "_compatibleItems") exitWith {
diff --git a/addons/settings/stringtable.xml b/addons/settings/stringtable.xml
index 333260670..d42661da1 100644
--- a/addons/settings/stringtable.xml
+++ b/addons/settings/stringtable.xml
@@ -401,7 +401,7 @@
Oyuncular tarafından bu ayarın üstüne yazılmış.
I client sovrascrivono questa impostazione.
Toto nastavení je přepsáno klienty.
-
+ 이 설정은 클라이언트에 의해 덮어씌워졌습니다.
This setting is overwritten by the mission.
@@ -416,7 +416,7 @@
Görev tarafından bu ayarın üstüne yazılmış.
La missione sovrascrive questa impostazione.
Toto nastavení je přepsáno misí.
-
+ 이 설정은 미션에 의해 덮어씌워졌습니다.
This setting is overwritten by the server.
diff --git a/addons/ui/flexiMenu/data/menu_arma2.hpp b/addons/ui/flexiMenu/data/menu_arma2.hpp
index 679572061..289b768b7 100644
--- a/addons/ui/flexiMenu/data/menu_arma2.hpp
+++ b/addons/ui/flexiMenu/data/menu_arma2.hpp
@@ -108,7 +108,7 @@ class CBA_flexiMenu_rscArma2 {
};
//---------------------------------
class controls {
- class caption: rscText {
+ class caption: RscText {
idc = _flexiMenu_IDC_menuDesc;
//x = QUOTE(_SX - _BW);
x = QUOTE(_leftButtonLevel1X);
diff --git a/addons/ui/flexiMenu/data/menu_buttonList.hpp b/addons/ui/flexiMenu/data/menu_buttonList.hpp
index 75ce885d8..edaa63592 100644
--- a/addons/ui/flexiMenu/data/menu_buttonList.hpp
+++ b/addons/ui/flexiMenu/data/menu_buttonList.hpp
@@ -100,7 +100,7 @@ class CBA_flexiMenu_rscButtonList { //: _flexiMenu_rscRose
};
//---------------------------------
class controls {
- class caption: rscText {
+ class caption: RscText {
idc = _flexiMenu_IDC_menuDesc;
x = QUOTE(_SX - _BW);
y = QUOTE(_SY - _buttonsBeforeCenter * _BH - _gapH - _BH * _captionHgt);
diff --git a/addons/ui/flexiMenu/data/menu_iconRow.hpp b/addons/ui/flexiMenu/data/menu_iconRow.hpp
index 783ec470f..85b12be22 100644
--- a/addons/ui/flexiMenu/data/menu_iconRow.hpp
+++ b/addons/ui/flexiMenu/data/menu_iconRow.hpp
@@ -103,7 +103,7 @@ class CBA_flexiMenu_rscIconRow { //: _flexiMenu_rscRose
};
//---------------------------------
class controls {
- class caption: rscText {
+ class caption: RscText {
idc = _flexiMenu_IDC_menuDesc;
x = QUOTE(_SX - _buttonsBeforeCenter * _BW);
y = QUOTE(_SY - _gapH-_StandardBH * _captionHgt);
diff --git a/addons/ui/flexiMenu/data/menu_popup.hpp b/addons/ui/flexiMenu/data/menu_popup.hpp
index b01b3ef52..b1295ffbc 100644
--- a/addons/ui/flexiMenu/data/menu_popup.hpp
+++ b/addons/ui/flexiMenu/data/menu_popup.hpp
@@ -61,7 +61,7 @@ class CBA_flexiMenu_rscPopup { // _flexiMenu_rscRose
};
// ---------------------------------
class controls {
- class caption: rscText {
+ class caption: RscText {
idc = _flexiMenu_IDC_menuDesc;
x = QUOTE(_SX - _BW);
y = QUOTE(safeZoneY + 0.30 * safeZoneH-_BH * _captionHgt);
diff --git a/addons/ui/flexiMenu/data/menu_rose.hpp b/addons/ui/flexiMenu/data/menu_rose.hpp
index ea5aa7a8c..7cd947d62 100644
--- a/addons/ui/flexiMenu/data/menu_rose.hpp
+++ b/addons/ui/flexiMenu/data/menu_rose.hpp
@@ -102,7 +102,7 @@ class CBA_flexiMenu_rscRose {
};
//---------------------------------
class controls {
- class caption: rscText {
+ class caption: RscText {
idc = _flexiMenu_IDC_menuDesc;
//x = QUOTE(_SX - _BW);
x = QUOTE(_leftButtonLevel1X);
diff --git a/include/a3/ui_f/hpp/defineResincl.inc b/include/a3/ui_f/hpp/defineResincl.inc
index 12b897259..2f513642b 100644
--- a/include/a3/ui_f/hpp/defineResincl.inc
+++ b/include/a3/ui_f/hpp/defineResincl.inc
@@ -1,3 +1,5 @@
+// This file was modified from the original to remove 3 duplicate defines
+// check for changes when updating includes
#ifndef _RESINCL_HPP
#define _RESINCL_HPP
@@ -1673,8 +1675,8 @@ enum
#define IDC_MULTI_FULL_FILTER 151
#define IDC_MULTI_TYPE_FILTER 152
#define IDC_MP_NEXT_SESSION 153
-#define IDC_MULTI_BATTLEYE_FILTER 154
-#define IDC_MULTI_EXPANSIONS_FILTER 155
+// #define IDC_MULTI_BATTLEYE_FILTER 154
+// #define IDC_MULTI_EXPANSIONS_FILTER 155
#define IDC_MULTI_FAVORITE_COLUMN 156
#define IDC_MULTI_FAVORITE_ICON 157
#define IDC_MULTI_SERVER_COUNT 158
@@ -1696,7 +1698,7 @@ enum
#define IDC_MP_QUICK_BEST_SERVER 112
#define IDC_MP_QUICK_FIND_SERVER 113
#define IDC_MP_QUICK_SHOW_SERVERS 114
-#define IDC_MP_QUICK_SHOW_SERVERS 114
+// #define IDC_MP_QUICK_SHOW_SERVERS 114
#define IDC_MP_QUICK_MODE_TITLE 115
#define IDC_MP_QUICK_MODE_PICTURE 116
#define IDC_MP_QUICK_MODE_DESCRIPTION 117
diff --git a/sqfc.json b/sqfc.json
index f3695e5f1..59e77fb47 100644
--- a/sqfc.json
+++ b/sqfc.json
@@ -14,7 +14,8 @@
"diagnostic\\fnc_isdebugconsoleallowed.sqf",
"xeh\\fnc_initdisplay.sqf",
"xeh\\fnc_startloadingscreen.sqf",
- "xeh\\fnc_endloadingscreen.sqf"
+ "xeh\\fnc_endloadingscreen.sqf",
+ "\\test_"
],
"outputDir": "P:/",
"workerThreads": 12