From ae72280aacc668507afbe0cea7482b4d055cd357 Mon Sep 17 00:00:00 2001 From: ColdEvul Date: Tue, 11 Jun 2019 21:11:41 +0200 Subject: [PATCH 001/116] Removed and replaced date topic from diary record --- addons/help/XEH_postInit.sqf | 8 +++++--- addons/help/XEH_preInit.sqf | 9 +++++++++ addons/help/stringtable.xml | 9 +++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/addons/help/XEH_postInit.sqf b/addons/help/XEH_postInit.sqf index a2854aaf1..2c194f526 100644 --- a/addons/help/XEH_postInit.sqf +++ b/addons/help/XEH_postInit.sqf @@ -3,6 +3,8 @@ if (!hasInterface) exitWith {}; +if !(profileNamespace getVariable QGVAR(ShowDiaryRecords)) exitWith {}; + { // create diary, entries added in reverse order private _unit = player; @@ -37,7 +39,7 @@ if (!hasInterface) exitWith {}; // delete last line breaks _keys = _keys select [0, count _keys - 10]; - _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Help_Keys", _keys]]; - _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Credits", call (uiNamespace getVariable QGVAR(credits))]]; - _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Addons", call (uiNamespace getVariable QGVAR(mods))]]; + _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Help_Keys", format ["%1
%2", localize "STR_CBA_Help_Keys", _keys]], taskNull, "", false]; + _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Credits", format ["%1
%2", localize "STR_CBA_Credits", call (uiNamespace getVariable QGVAR(credits))]], taskNull, "", false]; + _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Addons", format ["%1
%2", localize "STR_CBA_Addons", call (uiNamespace getVariable QGVAR(mods))]], taskNull, "", false]; } call CBA_fnc_execNextFrame; diff --git a/addons/help/XEH_preInit.sqf b/addons/help/XEH_preInit.sqf index 7130d8ddb..c2ba4b9b3 100644 --- a/addons/help/XEH_preInit.sqf +++ b/addons/help/XEH_preInit.sqf @@ -1,6 +1,15 @@ //#define DEBUG_MODE_FULL #include "script_component.hpp" +[ + QGVAR(ShowDiaryRecords), "CHECKBOX", + [LLSTRING(ShowDiaryRecords), LLSTRING(ShowDiaryRecordsTooltip)], + LLSTRING(Category), + true, + nil, + {profileNamespace setVariable [QGVAR(ShowDiaryRecords), _this];} +] call CBA_fnc_addSetting; + if (!hasInterface) exitWith {}; ADDON = false; diff --git a/addons/help/stringtable.xml b/addons/help/stringtable.xml index 1d6a2e130..04f44b0ee 100644 --- a/addons/help/stringtable.xml +++ b/addons/help/stringtable.xml @@ -59,5 +59,14 @@ 模组 Modüller + + CBA Help + + + Create helper diary records + + + Setting to create helper diary record on mission start; key bindings, credits and addons. + From 2c326e291f8abe62ac2c7197ff97e3af2de72510 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 14 Jun 2019 00:20:26 +0200 Subject: [PATCH 002/116] fix scripted optics in pause menu in MP (#1160) * draw scripted optic in pause menu in MP * draw scripted optic in pause menu in MP --- addons/optics/CfgEventHandlers.hpp | 3 +++ addons/optics/fnc_initDisplayInterrupt.sqf | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/optics/CfgEventHandlers.hpp b/addons/optics/CfgEventHandlers.hpp index 5dc9f7f00..00f32c9f6 100644 --- a/addons/optics/CfgEventHandlers.hpp +++ b/addons/optics/CfgEventHandlers.hpp @@ -14,4 +14,7 @@ class Extended_DisplayLoad_EventHandlers { class RscDisplayInterrupt { ADDON = QUOTE(_this call (uiNamespace getVariable 'FUNC(initDisplayInterrupt)')); }; + class RscDisplayMPInterrupt { + ADDON = QUOTE(_this call (uiNamespace getVariable 'FUNC(initDisplayInterrupt)')); + }; }; diff --git a/addons/optics/fnc_initDisplayInterrupt.sqf b/addons/optics/fnc_initDisplayInterrupt.sqf index 12f67b889..cda007f21 100644 --- a/addons/optics/fnc_initDisplayInterrupt.sqf +++ b/addons/optics/fnc_initDisplayInterrupt.sqf @@ -74,7 +74,7 @@ _script ctrlSetPosition [0,0,0,0]; _script ctrlCommit 0; _script ctrlAddEventHandler ["Draw", { - if (isNull (uiNamespace getVariable ["RscDisplayInterrupt", displayNull])) then { + if (isNull (uiNamespace getVariable [["RscDisplayInterrupt", "RscDisplayMPInterrupt"] select isMultiplayer, displayNull])) then { { QGVAR(pauseOpticLayer) cutText ["", "PLAIN"]; } call CBA_fnc_execNextFrame; From 20b7c90b427635897760b1420d1ccfc4da389dce Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 14 Jun 2019 14:14:14 +0200 Subject: [PATCH 003/116] check masses of items of disposable framework (#1161) --- addons/disposable/XEH_preInit.sqf | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/addons/disposable/XEH_preInit.sqf b/addons/disposable/XEH_preInit.sqf index 069405edc..e1d73012e 100644 --- a/addons/disposable/XEH_preInit.sqf +++ b/addons/disposable/XEH_preInit.sqf @@ -47,6 +47,23 @@ private _cfgMagazines = configFile >> "CfgMagazines"; if (GVAR(magazines) pushBackUnique _magazine != -1) then { GVAR(MagazineLaunchers) setVariable [_magazine, _loadedLauncher]; }; + + // check if mass entries add up + private _massLauncher = getNumber (_cfgWeapons >> _launcher >> "WeaponSlotsInfo" >> "mass"); + private _massMagazine = getNumber (_cfgMagazines >> _magazine >> "mass"); + private _massLoadedLauncher = getNumber (_cfgWeapons >> _loadedLauncher >> "WeaponSlotsInfo" >> "mass"); + private _massUsedLauncher = getNumber (_cfgWeapons >> _usedLauncher >> "WeaponSlotsInfo" >> "mass"); + + if (_massLauncher != _massUsedLauncher) then { + WARNING_4("Mass of launcher %1 (%2) is different from mass of used launcher %3 (%4).", _launcher, _massLauncher, _usedLauncher, _massUsedLauncher); + }; + + if (_massLauncher + _massMagazine != _massLoadedLauncher) then { + WARNING_7("Sum of mass of launcher %1 and mass of magazine %2 (%3+%4=%5) is different from mass of loaded launcher %6 (%7).", + _launcher, _magazine, _massLauncher, _massMagazine, _massLauncher + _massMagazine, + _loadedLauncher, _massLoadedLauncher + ); + }; } forEach configProperties [configFile >> "CBA_DisposableLaunchers", "isArray _x"]; ["CBA_settingsInitialized", { From b261892745a2b587a8675855afa797db8a7f7eca Mon Sep 17 00:00:00 2001 From: ColdEvul Date: Fri, 14 Jun 2019 21:05:09 +0200 Subject: [PATCH 004/116] Reverted settings --- addons/help/XEH_postInit.sqf | 2 -- addons/help/XEH_preInit.sqf | 9 --------- addons/help/stringtable.xml | 9 --------- 3 files changed, 20 deletions(-) diff --git a/addons/help/XEH_postInit.sqf b/addons/help/XEH_postInit.sqf index 2c194f526..85cb88577 100644 --- a/addons/help/XEH_postInit.sqf +++ b/addons/help/XEH_postInit.sqf @@ -3,8 +3,6 @@ if (!hasInterface) exitWith {}; -if !(profileNamespace getVariable QGVAR(ShowDiaryRecords)) exitWith {}; - { // create diary, entries added in reverse order private _unit = player; diff --git a/addons/help/XEH_preInit.sqf b/addons/help/XEH_preInit.sqf index c2ba4b9b3..7130d8ddb 100644 --- a/addons/help/XEH_preInit.sqf +++ b/addons/help/XEH_preInit.sqf @@ -1,15 +1,6 @@ //#define DEBUG_MODE_FULL #include "script_component.hpp" -[ - QGVAR(ShowDiaryRecords), "CHECKBOX", - [LLSTRING(ShowDiaryRecords), LLSTRING(ShowDiaryRecordsTooltip)], - LLSTRING(Category), - true, - nil, - {profileNamespace setVariable [QGVAR(ShowDiaryRecords), _this];} -] call CBA_fnc_addSetting; - if (!hasInterface) exitWith {}; ADDON = false; diff --git a/addons/help/stringtable.xml b/addons/help/stringtable.xml index 04f44b0ee..1d6a2e130 100644 --- a/addons/help/stringtable.xml +++ b/addons/help/stringtable.xml @@ -59,14 +59,5 @@ 模组 Modüller - - CBA Help - - - Create helper diary records - - - Setting to create helper diary record on mission start; key bindings, credits and addons. - From 0bd78ee1f11c5f0fe454d290640e477bf6cff092 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 15 Jun 2019 07:14:45 +0200 Subject: [PATCH 005/116] update scripted optics effect radblur classes (#1163) --- addons/optics/CfgOpticsEffect.hpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/addons/optics/CfgOpticsEffect.hpp b/addons/optics/CfgOpticsEffect.hpp index 116c6bf84..53677f9a1 100644 --- a/addons/optics/CfgOpticsEffect.hpp +++ b/addons/optics/CfgOpticsEffect.hpp @@ -1,7 +1,17 @@ class CfgOpticsEffect { class CBA_OpticsRadBlur1 { type = "radialblur"; - params[] = {0.015,0,0.14,0.2}; + params[] = {0.005,0.005,0.20,0.20*16/9}; + priority = 950; + }; + class CBA_OpticsRadBlur2 { + type = "radialblur"; + params[] = {0.01,0.01,0.20,0.20*16/9}; + priority = 950; + }; + class CBA_OpticsRadBlur3 { + type = "radialblur"; + params[] = {0.015,0.015,0.20,0.20*16/9}; priority = 950; }; }; From cd8a239c3ecfa6cdbd58ee6263ba4871ff9c33c3 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 15 Jun 2019 09:34:50 +0200 Subject: [PATCH 006/116] rotate scripted optic according to weapon bank (#1162) * rotate scripted optic according to weapon bank * handle launchers, pistols * update variable names --- addons/optics/XEH_PREP.sqf | 1 + addons/optics/fnc_animateScriptedOptic.sqf | 5 ++++ addons/optics/fnc_gunBank.sqf | 35 ++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 addons/optics/fnc_gunBank.sqf diff --git a/addons/optics/XEH_PREP.sqf b/addons/optics/XEH_PREP.sqf index d42fb08db..fa6fc2789 100644 --- a/addons/optics/XEH_PREP.sqf +++ b/addons/optics/XEH_PREP.sqf @@ -9,3 +9,4 @@ PREP(changeCarryHandleOpticClass); PREP(setOpticMagnification); PREP(setOpticMagnificationHelper); PREP(setOpticMagnificationHelperZeroing); +PREP(gunBank); diff --git a/addons/optics/fnc_animateScriptedOptic.sqf b/addons/optics/fnc_animateScriptedOptic.sqf index 3d07a3957..30ad84ac5 100644 --- a/addons/optics/fnc_animateScriptedOptic.sqf +++ b/addons/optics/fnc_animateScriptedOptic.sqf @@ -116,6 +116,11 @@ _ctrlBody ctrlSetTextColor [1,1,1,_dayOpacity]; _ctrlBodyNight ctrlSetTextColor [1,1,1,_nightOpacity]; _ctrlBlackScope ctrlShow (GVAR(usePipOptics) && !isPipEnabled); +private _bank = call FUNC(gunBank); +_ctrlReticle ctrlSetAngle [_bank, 0.5, 0.5]; +_ctrlBody ctrlSetAngle [_bank, 0.5, 0.5]; +_ctrlBodyNight ctrlSetAngle [_bank, 0.5, 0.5]; + // zooming reticle if (isNull (_display displayCtrl IDC_ENABLE_ZOOM)) exitWith {}; diff --git a/addons/optics/fnc_gunBank.sqf b/addons/optics/fnc_gunBank.sqf new file mode 100644 index 000000000..6a36227bf --- /dev/null +++ b/addons/optics/fnc_gunBank.sqf @@ -0,0 +1,35 @@ +#include "script_component.hpp" +/* ---------------------------------------------------------------------------- +Internal Function: cba_optics_fnc_gunBank + +Description: + Reports the bank at which the primary weapon is tilted. + +Parameters: + None. + +Returns: + Leaning angle of avatar. + +Examples: + (begin example) + call cba_optics_fnc_gunBank; + (end) + +Author: + commy2 +---------------------------------------------------------------------------- */ + +private _unit = [] call CBA_fnc_currentUnit; + +private _pelvis = _unit modelToWorldVisualWorld (_unit selectionPosition "Pelvis"); +private _camera = _unit modelToWorldVisualWorld (_unit selectionPosition "camera"); +private _bodyUp = _pelvis vectorFromTo _camera; + +private _weaponDir = _unit weaponDirection currentWeapon _unit; +private _weaponLat = vectorNormalized (_weaponDir vectorCrossProduct _bodyUp); +private _weaponUp = _weaponLat vectorCrossProduct _weaponDir; + +private _screenRight = AGLToASL positionCameraToWorld [0,0,0] vectorFromTo AGLToASL positionCameraToWorld [1,0,0]; + +90 - acos (_screenRight vectorCos _weaponUp) // return From 6a42995fc7fd180e65c0cca799f9feb84c484875 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 15 Jun 2019 10:03:11 +0200 Subject: [PATCH 007/116] add cartridge ejection effect on repeat (#1158) * add cartridge effect on repeat * optimize * velocity one frame later to fix drawn position in frame 0 * update variable names --- addons/events/fnc_weaponEvents.sqf | 59 +++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/addons/events/fnc_weaponEvents.sqf b/addons/events/fnc_weaponEvents.sqf index e6dc73b1b..a1ddd167d 100644 --- a/addons/events/fnc_weaponEvents.sqf +++ b/addons/events/fnc_weaponEvents.sqf @@ -84,7 +84,7 @@ if (!_isEmpty || _onEmpty) then { "_unit", "_weapon", "_muzzle", "_optic", "_handAction", "_sound", "_soundSource", "_expectedMagazineCount", "_time", "_delay", - "_triggerReleased" + "_triggerReleased", "_config" ]; // exit if unit switched weapon @@ -126,11 +126,66 @@ if (!_isEmpty || _onEmpty) then { _soundSource say3D _sound; }; + // eject cartidge on repeat + private _cartridgeType = getText (_config >> "cartridgeType"); + + if (_cartridgeType != "") then { + private _cartridgeEjectPosition = getArray (_config >> "cartridgeEjectPosition"); + private _cartridgeEjectVelocity = getArray (_config >> "cartridgeEjectVelocity"); + private _cartridgeEjectDelay = getNumber (_config >> "cartridgeEjectDelay"); + + if (_cartridgeEjectPosition isEqualTo []) then { + _cartridgeEjectPosition = [0,0,0]; + }; + + if (_cartridgeEjectVelocity isEqualTo []) then { + _cartridgeEjectVelocity = [0,1,0]; + }; + + [{ + params ["_unit", "_weapon", "_cartridgeType", "_cartridgeEjectPosition", "_cartridgeEjectVelocity"]; + + private _pelvis = _unit modelToWorldVisualWorld (_unit selectionPosition "Pelvis"); + private _camera = _unit modelToWorldVisualWorld (_unit selectionPosition "camera"); + private _bodyUp = _pelvis vectorFromTo _camera; + + private _weaponDir = _unit weaponDirection _weapon; + private _weaponLat = vectorNormalized (_weaponDir vectorCrossProduct _bodyUp); + private _weaponUp = _weaponLat vectorCrossProduct _weaponDir; + + private _origin = _unit modelToWorldVisualWorld (_unit selectionPosition "proxy:\a3\characters_f\proxies\weapon.001"); + + private _position = _origin vectorAdd + (_weaponDir vectorMultiply _cartridgeEjectPosition#0) vectorAdd + (_weaponLat vectorMultiply _cartridgeEjectPosition#1) vectorAdd + (_weaponUp vectorMultiply _cartridgeEjectPosition#2); + + private _cartridge = _cartridgeType createVehicleLocal ASLToAGL _position; + + _cartridge setVectorDirAndUp [ + vectorNormalized _weaponDir, + vectorNormalized _weaponUp + ]; + + private _velocity = velocity _unit vectorAdd + (_weaponDir vectorMultiply _cartridgeEjectVelocity#0) vectorAdd + (_weaponLat vectorMultiply _cartridgeEjectVelocity#1) vectorAdd + (_weaponUp vectorMultiply _cartridgeEjectVelocity#2); + + [{ + params ["_cartridge", "_velocity"]; + _cartridge setVelocity _velocity; + }, [_cartridge, _velocity]] call CBA_fnc_execNextFrame; + }, [ + _unit, _weapon, _cartridgeType, _cartridgeEjectPosition, _cartridgeEjectVelocity + ], _cartridgeEjectDelay] call CBA_fnc_waitAndExecute; + }; + true // exit loop }, {}, [ _unit, _weapon, _muzzle, _optic, _handAction, _sound, call _fnc_soundSource, _expectedMagazineCount, CBA_missionTime, _delay, - _triggerReleased + _triggerReleased, _config ]] call CBA_fnc_waitUntilAndExecute; }; From 4e7a6815a9f10c08cc4b4655cbfb1977c0e8149d Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 15 Jun 2019 17:09:38 +0200 Subject: [PATCH 008/116] optimize CBA_fnc_randomVector3D (#1164) --- addons/vectors/fnc_randomVector3D.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vectors/fnc_randomVector3D.sqf b/addons/vectors/fnc_randomVector3D.sqf index 659238319..cb07a9d2a 100644 --- a/addons/vectors/fnc_randomVector3D.sqf +++ b/addons/vectors/fnc_randomVector3D.sqf @@ -20,4 +20,4 @@ Author: commy2 ---------------------------------------------------------------------------- */ -[1, random 360, acos (random 2 - 1) - 90] call CBA_fnc_polar2vect // return +[1, random 360, asin (random 2 - 1)] call CBA_fnc_polar2vect // return From 57f542e9a5a53225b2233d20cd96f3c970f8dc4f Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 20 Jun 2019 22:57:00 +0200 Subject: [PATCH 009/116] handle expressions in CfgOpticsEffect (#1165) * handle expressions in CfgOpticsEffect * handle different resolutions --- addons/optics/CfgOpticsEffect.hpp | 6 +++--- addons/optics/fnc_updateOpticInfo.sqf | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/optics/CfgOpticsEffect.hpp b/addons/optics/CfgOpticsEffect.hpp index 53677f9a1..fa68ff8c7 100644 --- a/addons/optics/CfgOpticsEffect.hpp +++ b/addons/optics/CfgOpticsEffect.hpp @@ -1,17 +1,17 @@ class CfgOpticsEffect { class CBA_OpticsRadBlur1 { type = "radialblur"; - params[] = {0.005,0.005,0.20,0.20*16/9}; + params[] = {0.005,0.005,"0.35/(getResolution select 4)",0.35}; priority = 950; }; class CBA_OpticsRadBlur2 { type = "radialblur"; - params[] = {0.01,0.01,0.20,0.20*16/9}; + params[] = {0.01,0.01,"0.35/(getResolution select 4)",0.35}; priority = 950; }; class CBA_OpticsRadBlur3 { type = "radialblur"; - params[] = {0.015,0.015,0.20,0.20*16/9}; + params[] = {0.015,0.015,"0.35/(getResolution select 4)",0.35}; priority = 950; }; }; diff --git a/addons/optics/fnc_updateOpticInfo.sqf b/addons/optics/fnc_updateOpticInfo.sqf index b09aaf954..da8db29a3 100644 --- a/addons/optics/fnc_updateOpticInfo.sqf +++ b/addons/optics/fnc_updateOpticInfo.sqf @@ -96,7 +96,11 @@ GVAR(ppEffects) = getArray (_config >> "opticsPPEffects") apply { private _config = configFile >> "CfgOpticsEffect" >> _x; private _type = getText (_config >> "type"); private _priority = getNumber (_config >> "priority"); - private _params = getArray (_config >> "params"); + private _params = getArray (_config >> "params") apply { + if (_x isEqualType "") then { + call compile _x + } else {_x}; + }; private _ppEffect = ppEffectCreate [_type, _priority]; _ppEffect ppEffectAdjust _params; From e02e5cbf051f842fecbcfaad5a9d3c286b87e965 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 21 Jun 2019 00:55:42 +0200 Subject: [PATCH 010/116] replace more %xy in mission names (#1166) * replace more %xx in mission names * update encoding list --- addons/strings/CfgFunctions.hpp | 1 + addons/strings/fnc_decodeURL.sqf | 44 ++++ addons/strings/script_component.hpp | 219 ++++++++++++++++++ addons/ui/fnc_initDisplayDiary.sqf | 2 +- addons/ui/fnc_initDisplayInterrupt.sqf | 10 + addons/ui/fnc_initDisplayMultiplayerSetup.sqf | 9 +- addons/ui/fnc_initDisplayRemoteMissions.sqf | 8 +- 7 files changed, 287 insertions(+), 6 deletions(-) create mode 100644 addons/strings/fnc_decodeURL.sqf diff --git a/addons/strings/CfgFunctions.hpp b/addons/strings/CfgFunctions.hpp index b48fac451..5afd84a60 100644 --- a/addons/strings/CfgFunctions.hpp +++ b/addons/strings/CfgFunctions.hpp @@ -16,6 +16,7 @@ class CfgFunctions { PATHTO_FNC(strLen); PATHTO_FNC(trim); PATHTO_FNC(sanitizeHTML); + PATHTO_FNC(decodeURL); }; }; }; diff --git a/addons/strings/fnc_decodeURL.sqf b/addons/strings/fnc_decodeURL.sqf new file mode 100644 index 000000000..d1e67eb52 --- /dev/null +++ b/addons/strings/fnc_decodeURL.sqf @@ -0,0 +1,44 @@ +#include "script_component.hpp" +/* ---------------------------------------------------------------------------- +Function: CBA_fnc_decodeURL + +Description: + Reverse URL encoded text to readable text. + +Parameters: + _string - URL encoded text + +Returns: + _return - Human readable text + +Examples: + (begin example) + "Mission%20Name" call CBA_fnc_decodeURL; // "Mission Name" + (end) + +Author: + commy2 +---------------------------------------------------------------------------- */ + +params [["_string", "", [""]]]; +if (_string isEqualTo "") exitWith {""}; + +private _cache = missionNamespace getVariable [QGVAR(URLCache), objNull]; +private _return = _cache getVariable _string; + +if (isNil "_return") then { + _return = _string; + + { + _return = ([_return] + _x) call CBA_fnc_replace; + } forEach UTF8_TABLE; + + if (isNull _cache) then { + _cache = [] call CBA_fnc_createNamespace; + missionNamespace setVariable [QGVAR(URLCache), _cache]; + }; + + _cache setVariable [_string, _return]; +}; + +_return diff --git a/addons/strings/script_component.hpp b/addons/strings/script_component.hpp index a6a2024e6..2fcca2a76 100644 --- a/addons/strings/script_component.hpp +++ b/addons/strings/script_component.hpp @@ -10,3 +10,222 @@ #endif #include "\x\cba\addons\main\script_macros.hpp" + +#define UTF8_TABLE [\ + ["%21","!"],\ + ["%22",""""],\ + ["%23","#"],\ + ["%24","$"],\ + ["%26","&"],\ + ["%27","'"],\ + ["%28","("],\ + ["%29",")"],\ + ["%2a","*"],\ + ["%2b","+"],\ + ["%2c",","],\ + ["%2d","-"],\ + ["%2e","."],\ + ["%2f","/"],\ + ["%30","0"],\ + ["%31","1"],\ + ["%32","2"],\ + ["%33","3"],\ + ["%34","4"],\ + ["%35","5"],\ + ["%36","6"],\ + ["%37","7"],\ + ["%38","8"],\ + ["%39","9"],\ + ["%3a",":"],\ + ["%3b",";"],\ + ["%3c","<"],\ + ["%3d","="],\ + ["%3e",">"],\ + ["%3f","?"],\ + ["%40","@"],\ + ["%41","A"],\ + ["%42","B"],\ + ["%43","C"],\ + ["%44","D"],\ + ["%45","E"],\ + ["%46","F"],\ + ["%47","G"],\ + ["%48","H"],\ + ["%49","I"],\ + ["%4a","J"],\ + ["%4b","K"],\ + ["%4c","L"],\ + ["%4d","M"],\ + ["%4e","N"],\ + ["%4f","O"],\ + ["%50","P"],\ + ["%51","Q"],\ + ["%52","R"],\ + ["%53","S"],\ + ["%54","T"],\ + ["%55","U"],\ + ["%56","V"],\ + ["%57","W"],\ + ["%58","X"],\ + ["%59","Y"],\ + ["%5a","Z"],\ + ["%5b","["],\ + ["%5c","\"],\ + ["%5d","]"],\ + ["%5e","^"],\ + ["%5f","_"],\ + ["%60","`"],\ + ["%61","a"],\ + ["%62","b"],\ + ["%63","c"],\ + ["%64","d"],\ + ["%65","e"],\ + ["%66","f"],\ + ["%67","g"],\ + ["%68","h"],\ + ["%69","i"],\ + ["%6a","j"],\ + ["%6b","k"],\ + ["%6c","l"],\ + ["%6d","m"],\ + ["%6e","n"],\ + ["%6f","o"],\ + ["%70","p"],\ + ["%71","q"],\ + ["%72","r"],\ + ["%73","s"],\ + ["%74","t"],\ + ["%75","u"],\ + ["%76","v"],\ + ["%77","w"],\ + ["%78","x"],\ + ["%79","y"],\ + ["%7a","z"],\ + ["%7b","{"],\ + ["%7c","|"],\ + ["%7d","}"],\ + ["%7e","~"],\ + ["%e2%82%ac","`"],\ + ["%e2%80%9a","‚"],\ + ["%c6%92","ƒ"],\ + ["%e2%80%9e","„"],\ + ["%e2%80%a6","…"],\ + ["%e2%80%a0","†"],\ + ["%e2%80%a1","‡"],\ + ["%cb%86","ˆ"],\ + ["%e2%80%b0","‰"],\ + ["%c5%a0","Š"],\ + ["%e2%80%b9","‹"],\ + ["%c5%92","Œ"],\ + ["%c5%bd","Ž"],\ + ["%e2%80%98","‘"],\ + ["%e2%80%99","’"],\ + ["%e2%80%9c","“"],\ + ["%e2%80%9d","”"],\ + ["%e2%80%a2","•"],\ + ["%e2%80%93","–"],\ + ["%e2%80%94","—"],\ + ["%cb%9c","˜"],\ + ["%e2%84","™"],\ + ["%c5%a1","š"],\ + ["%e2%80","›"],\ + ["%c5%93","œ"],\ + ["%c5%be","ž"],\ + ["%c5%b8","Ÿ"],\ + ["%c2%a1","¡"],\ + ["%c2%a2","¢"],\ + ["%c2%a3","£"],\ + ["%c2%a4","¤"],\ + ["%c2%a5","¥"],\ + ["%c2%a6","¦"],\ + ["%c2%a7","§"],\ + ["%c2%a8","¨"],\ + ["%c2%a9","©"],\ + ["%c2%aa","ª"],\ + ["%c2%ab","«"],\ + ["%c2%ac","¬"],\ + ["%c2%ae","®"],\ + ["%c2%af","¯"],\ + ["%c2%b0","°"],\ + ["%c2%b1","±"],\ + ["%c2%b2","²"],\ + ["%c2%b3","³"],\ + ["%c2%b4","´"],\ + ["%c2%b5","µ"],\ + ["%c2%b6","¶"],\ + ["%c2%b7","·"],\ + ["%c2%b8","¸"],\ + ["%c2%b9","¹"],\ + ["%c2%ba","º"],\ + ["%c2%bb","»"],\ + ["%c2%bc","¼"],\ + ["%c2%bd","½"],\ + ["%c2%be","¾"],\ + ["%c2%bf","¿"],\ + ["%c3%80","À"],\ + ["%c3%81","Á"],\ + ["%c3%82","Â"],\ + ["%c3%83","Ã"],\ + ["%c3%84","Ä"],\ + ["%c3%85","Å"],\ + ["%c3%86","Æ"],\ + ["%c3%87","Ç"],\ + ["%c3%88","È"],\ + ["%c3%89","É"],\ + ["%c3%8a","Ê"],\ + ["%c3%8b","Ë"],\ + ["%c3%8c","Ì"],\ + ["%c3%8d","Í"],\ + ["%c3%8e","Î"],\ + ["%c3%8f","Ï"],\ + ["%c3%90","Ð"],\ + ["%c3%91","Ñ"],\ + ["%c3%92","Ò"],\ + ["%c3%93","Ó"],\ + ["%c3%94","Ô"],\ + ["%c3%95","Õ"],\ + ["%c3%96","Ö"],\ + ["%c3%97","×"],\ + ["%c3%98","Ø"],\ + ["%c3%99","Ù"],\ + ["%c3%9a","Ú"],\ + ["%c3%9b","Û"],\ + ["%c3%9c","Ü"],\ + ["%c3%9d","Ý"],\ + ["%c3%9e","Þ"],\ + ["%c3%9f","ß"],\ + ["%c3%a0","à"],\ + ["%c3%a1","á"],\ + ["%c3%a2","â"],\ + ["%c3%a3","ã"],\ + ["%c3%a4","ä"],\ + ["%c3%a5","å"],\ + ["%c3%a6","æ"],\ + ["%c3%a7","ç"],\ + ["%c3%a8","è"],\ + ["%c3%a9","é"],\ + ["%c3%aa","ê"],\ + ["%c3%ab","ë"],\ + ["%c3%ac","ì"],\ + ["%c3%ad","í"],\ + ["%c3%ae","î"],\ + ["%c3%af","ï"],\ + ["%c3%b0","ð"],\ + ["%c3%b1","ñ"],\ + ["%c3%b2","ò"],\ + ["%c3%b3","ó"],\ + ["%c3%b4","ô"],\ + ["%c3%b5","õ"],\ + ["%c3%b6","ö"],\ + ["%c3%b7","÷"],\ + ["%c3%b8","ø"],\ + ["%c3%b9","ù"],\ + ["%c3%ba","ú"],\ + ["%c3%bb","û"],\ + ["%c3%bc","ü"],\ + ["%c3%bd","ý"],\ + ["%c3%be","þ"],\ + ["%c3%bf","ÿ"],\ + ["%%","%"],\ + ["%25","%"]\ +] diff --git a/addons/ui/fnc_initDisplayDiary.sqf b/addons/ui/fnc_initDisplayDiary.sqf index 9617d68f2..2854341c7 100644 --- a/addons/ui/fnc_initDisplayDiary.sqf +++ b/addons/ui/fnc_initDisplayDiary.sqf @@ -5,7 +5,7 @@ _this spawn { params ["_display"]; private _missionName = _display displayCtrl IDC_DIARY_MISSION_NAME; - private _text = [ctrlText _missionName, "%20", " "] call CBA_fnc_replace; + private _text = ctrlText _missionName call CBA_fnc_decodeURL; _missionName ctrlSetText _text; }; }; diff --git a/addons/ui/fnc_initDisplayInterrupt.sqf b/addons/ui/fnc_initDisplayInterrupt.sqf index 47cfc66ec..d39515f1c 100644 --- a/addons/ui/fnc_initDisplayInterrupt.sqf +++ b/addons/ui/fnc_initDisplayInterrupt.sqf @@ -1,5 +1,15 @@ #include "script_component.hpp" +_this spawn { + isNil { + params ["_display"]; + + private _missionName = _display displayCtrl IDC_INT_MISSIONNAME; + private _text = ctrlText _missionName call CBA_fnc_decodeURL; + _missionName ctrlSetText _text; + }; +}; + if (isNil QGVAR(MenuButtons)) exitWith {}; params ["_display"]; diff --git a/addons/ui/fnc_initDisplayMultiplayerSetup.sqf b/addons/ui/fnc_initDisplayMultiplayerSetup.sqf index 188012c61..90594b66f 100644 --- a/addons/ui/fnc_initDisplayMultiplayerSetup.sqf +++ b/addons/ui/fnc_initDisplayMultiplayerSetup.sqf @@ -43,9 +43,14 @@ private _fnc_update = { _playerList lbSetValue [_playerList lbAdd _text, _value]; }; - // replace %20 with space + // replace URL encoding private _missionName = _display displayCtrl IDC_MPSETUP_NAME; - private _text = [ctrlText _missionName, "%20", " "] call (uiNamespace getVariable "CBA_fnc_replace"); + + private _text = ctrlText _missionName; + with uiNamespace do { + _text = _text call CBA_fnc_decodeURL; + }; + _missionName ctrlSetText _text; }; diff --git a/addons/ui/fnc_initDisplayRemoteMissions.sqf b/addons/ui/fnc_initDisplayRemoteMissions.sqf index 9b15ff0f5..b4aec7274 100644 --- a/addons/ui/fnc_initDisplayRemoteMissions.sqf +++ b/addons/ui/fnc_initDisplayRemoteMissions.sqf @@ -89,10 +89,12 @@ private _fnc_storeMapMissions = {_this spawn {isNil { // delay a frame private _ctrlMissions = _display displayCtrl IDC_SERVER_MISSION; private _missions = []; - private _fnc_replace = uiNamespace getVariable "CBA_fnc_replace"; - for "_i" from 0 to (lbSize _ctrlMissions - 1) do { - private _name = [_ctrlMissions lbText _i, "%20", " "] call _fnc_replace; // replace %20 with space + private _name = _ctrlMissions lbText _i; + with uiNamespace do { + _name = _name call CBA_fnc_decodeURL; + }; + private _value = _ctrlMissions lbValue _i; private _data = _ctrlMissions lbData _i; private _color = _ctrlMissions lbColor _i; From 309402386dd2da72bd19168946c255530f626986 Mon Sep 17 00:00:00 2001 From: jonpas Date: Fri, 21 Jun 2019 01:04:05 +0200 Subject: [PATCH 011/116] Bump to v3.12.0.190621 --- README.md | 4 ++-- addons/main/script_version.hpp | 6 +++--- mod.cpp | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1222e1d39..bea7a7935 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Community Base Addons [![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) -[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.11.2) -[![](https://img.shields.io/badge/Release-3.11.1-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.11.2.190515) +[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.0) +[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.12.0.190621) [![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) [![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) [![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 2d4ca20fa..0d97c5ecc 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 -#define MINOR 11 -#define PATCHLVL 2 -#define BUILD 190515 +#define MINOR 12 +#define PATCHLVL 0 +#define BUILD 190621 diff --git a/mod.cpp b/mod.cpp index 2d90e7119..1b63c4613 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,4 +1,4 @@ -name = "Community Base Addons v3.11.2"; +name = "Community Base Addons v3.12.0"; picture = "logo_cba_ca.paa"; actionName = "Website"; action = "https://github.com/CBATeam/CBA_A3/wiki"; From d8a8812dfdca2505a630dfd24f5b385094036fe4 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Thu, 20 Jun 2019 21:38:34 -0500 Subject: [PATCH 012/116] Update badge to 11.2 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1222e1d39..0fa71528f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Community Base Addons [![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) [![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.11.2) -[![](https://img.shields.io/badge/Release-3.11.1-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.11.2.190515) +[![](https://img.shields.io/badge/Release-3.11.2-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.11.2.190515) [![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) [![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) [![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) From e6f5d96bfba5ae3c2cf4f49863768e8c426e3bab Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 21 Jun 2019 13:48:53 +0200 Subject: [PATCH 013/116] handle %20 = space --- addons/strings/script_component.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/strings/script_component.hpp b/addons/strings/script_component.hpp index 2fcca2a76..2e913ab89 100644 --- a/addons/strings/script_component.hpp +++ b/addons/strings/script_component.hpp @@ -12,6 +12,7 @@ #include "\x\cba\addons\main\script_macros.hpp" #define UTF8_TABLE [\ + ["%20"," "],\ ["%21","!"],\ ["%22",""""],\ ["%23","#"],\ From e997bcb2227f409f0d0ee3162b2dc148130b1cb6 Mon Sep 17 00:00:00 2001 From: ViperMaul Date: Fri, 21 Jun 2019 09:50:23 -0500 Subject: [PATCH 014/116] Unneeded --- README.md.orig | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 README.md.orig diff --git a/README.md.orig b/README.md.orig deleted file mode 100644 index a8df9d20f..000000000 --- a/README.md.orig +++ /dev/null @@ -1,47 +0,0 @@ -# Community Base Addons -[![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) -<<<<<<< HEAD -[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.0) -[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.12.0.190621) -======= -[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.11.2) -[![](https://img.shields.io/badge/Release-3.11.2-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.11.2.190515) ->>>>>>> master -[![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) -[![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) -[![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) - -## Installation - -Download the latest version and unpack it in your Arma 3 installation folder. -Simply launch Arma 3 with `-mod=@CBA_A3` afterwards. - -## Optionals - -To install any of the optionals, simply copy the respective PBOs into the `@CBA_A3\addons` folder. - -PBO | Description --------------------------------------- | -------------------------------------- -cba_cache_disable.pbo | Disables CBA's function caching. (Dev Tool) -cba_diagnostic_disable_xeh_logging.pbo | Disables all additional XEH RPT logging. -cba_diagnostic_enable_logging.pbo | Enables additional logging (Dev Tool) - -### CBA Caching - -CBA implements a cache for all `compile preProcessFile`'d scripts and for all XEH events on `CfgVehicle` classes. This cache is stored in the `uiNamespace` and is therefore available throughout the whole lifetime of the running game (game start, till terminate game). Each class is only cached once, while mission and `campaignConfigfile` events are evaluated every mission, but also only once per `CfgVehicle` class. - -The performance gains are seen in feature rich mods like ACE3 which rely heavily on scripting to make their features possible. -Some of these functionalities cause long loading times for the game, switching missions, islands and switching from the editor back to the game. -At the start of the game functions will be cached and loading times for functions will be comparable with the vanilla game. - -`cba_cache_disable.pbo` is an optional addon that can disable this if you need it. However it makes mods slower by disabling CBA's function and script compilation cache, as well as the XEH cache. It is useful during development, since script changes will take effect without restarting the entire game. - -## Known Issues - -* CBA Keybindings and Settings require a mission to be initialized to function properly. This includes working in the main menu of Arma 3. Commandline parameters like `-world=empty` or `-skipIntro` will cause Keybindings and Settings to work ONLY in-game but NOT in the main menu. - -## License - -Licensed under GNU General Public License ([GPLv2](LICENSE.md)) - -Any addon which calls CBA-defined functions need not be licensed under the GPLv2 or released under a free software license. Only if it is directly including CBA code in the addon's binarized PBO or redistributing a modified version of CBA itself would it be considered derivative and therefore be legally required to be released under the terms of the GPL. (And there's no reason to ever do either of these.) From f94181014f1d3f7a5f64b44cfd5429bb36d1bb76 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 23 Jun 2019 19:17:31 +0200 Subject: [PATCH 015/116] update CBA_fnc_uniqueUnitItems (#1157) * update CBA_fnc_uniqueUnitItems * revert a thing, add a note --- addons/common/fnc_uniqueUnitItems.sqf | 77 ++++++++++++++++++++------- 1 file changed, 58 insertions(+), 19 deletions(-) diff --git a/addons/common/fnc_uniqueUnitItems.sqf b/addons/common/fnc_uniqueUnitItems.sqf index 952f570cb..ff3777c61 100644 --- a/addons/common/fnc_uniqueUnitItems.sqf +++ b/addons/common/fnc_uniqueUnitItems.sqf @@ -8,10 +8,11 @@ Description: Parameters: _unit - Unit to retrieve the items from _weaponItems - Include weapons, attachments, loaded magazines (Default: false) - _backpack - Include items in backpack (Default: true) - _vest - Include items in vest (Default: true) - _uniform - Include items in uniform (Default: true) - _assignedItems - Include assigned items (Default: true) + _backpack - Include items in backpack (Default: true) + _vest - Include items in vest (Default: true) + _uniform - Include items in uniform (Default: true) + _assignedItems - Include assigned items (Default: true) + _magazines - Include not loaded magazines (Default: false) Example: (begin example) @@ -22,28 +23,66 @@ Returns: Array of item classnames Author: - Dedmen + Dedmen, commy2 ---------------------------------------------------------------------------- */ -SCRIPT(uniqueUnitItems); -params [["_unit", objNull, [objNull]], ["_weaponItems", false, [true]], ["_backpack", true, [true]], ["_vest", true, [true]], ["_uniform", true, [true]], ["_assignedItems", true, [true]]]; +params [ + ["_unit", objNull, [objNull]], + ["_weaponItems", false, [false]], + ["_backpack", true, [false]], + ["_vest", true, [false]], + ["_uniform", true, [false]], + ["_assignedItems", true, [false]], + ["_magazines", false, [false]] +]; private _allItems = if (_assignedItems) then {assignedItems _unit} else {[]}; -if (_uniform) then {_allItems append ((getItemCargo (uniformContainer _unit)) select 0)}; -if (_vest) then {_allItems append ((getItemCargo (vestContainer _unit)) select 0)}; -if (_backpack) then {_allItems append ((getItemCargo (backpackContainer _unit)) select 0)}; + +if (_uniform) then { + _allItems append (getItemCargo uniformContainer _unit select 0); +}; + +if (_vest) then { + _allItems append (getItemCargo vestContainer _unit select 0); +}; + +if (_backpack) then { + _allItems append (getItemCargo backpackContainer _unit select 0); +}; if (_weaponItems) then { - _allItems append (primaryWeaponItems _unit); - _allItems append (secondaryWeaponItems _unit); - _allItems append (handgunItems _unit); - _allItems append (primaryWeaponMagazine _unit); - _allItems append (secondaryWeaponMagazine _unit); - _allItems append (handgunMagazine _unit); _allItems append [ - primaryWeapon _unit, secondaryWeapon _unit, handgunWeapon _unit - ]; - _allItems pushBack (_unit call CBA_fnc_binocularMagazine); + primaryWeapon _unit, + secondaryWeapon _unit, + handgunWeapon _unit // binocular covered by assignedItems + ]; + + _allItems append primaryWeaponItems _unit; + _allItems append secondaryWeaponItems _unit; + _allItems append handgunItems _unit; + + if (_magazines) then { + _allItems append primaryWeaponMagazine _unit; + _allItems append secondaryWeaponMagazine _unit; + _allItems append handgunMagazine _unit; + _allItems pushBack (_unit call CBA_fnc_binocularMagazine); + }; + + _allItems = _allItems - [""]; +}; + +if (_magazines) then { + if (_uniform) then { + _allItems append (getMagazineCargo uniformContainer _unit select 0); + }; + + if (_vest) then { + _allItems append (getMagazineCargo vestContainer _unit select 0); + }; + + if (_backpack) then { + _allItems append (getMagazineCargo backpackContainer _unit select 0); + }; }; _allItems arrayIntersect _allItems //Remove duplicates From 07a2e04734e31b3e2c4d1247bce576f9db078680 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 29 Jun 2019 09:04:41 +0200 Subject: [PATCH 016/116] Fix CBA_fnc_removeItemCargo removing all containers instead of specified quantity (#1168) * Fix CBA_fnc_removeBackpackCargo unit test * Fix CBA_fnc_removeItemCargo removing all containers instead of specified quantity - fix #1153 --- addons/common/fnc_removeItemCargo.sqf | 64 +++++++++++++++------------ addons/common/test_inventory.sqf | 7 ++- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/addons/common/fnc_removeItemCargo.sqf b/addons/common/fnc_removeItemCargo.sqf index 87a1b9a84..c9d0827bd 100644 --- a/addons/common/fnc_removeItemCargo.sqf +++ b/addons/common/fnc_removeItemCargo.sqf @@ -62,22 +62,31 @@ if (_count <= 0) exitWith { _count = round _count; // Save containers and contents -private _containerData = []; // [object1, object2, ...] -private _containerNames = []; +private _containerData = []; { _x params ["_class", "_object"]; if !(_object in (everyBackpack _container)) then { - _containerData pushBack [getItemCargo _object, magazinesAmmoCargo _object, weaponsItemsCargo _object]; - _containerNames pushBack _class; + _containerData pushBack [_class, getItemCargo _object, magazinesAmmoCargo _object, weaponsItemsCargo _object]; }; } forEach (everyContainer _container); // [["class1", object1], ["class2", object2]] -// [[type1, typeN, ...], [count1, countN, ...]] -(getItemCargo _container) params ["_allItemsType", "_allItemsCount"]; +// Save non-container items +(getItemCargo _container) params ["_allItemsType", "_allItemsCount"]; // [[type1, typeN, ...], [count1, countN, ...]] +{ + private _class = _x; + private _count = _allItemsCount select _forEachIndex; + + private _sameData = _containerData select {_x select 0 == _class}; + if (_sameData isEqualTo []) then { + _containerData pushBack [_class, _count]; + }; +} forEach _allItemsType; // Clear cargo space and readd the items as long it's not the type in question clearItemCargoGlobal _container; +TRACE_1("Old cargo",_containerData); + // Add contents to backpack or box helper function private _fnc_addContents = { @@ -146,47 +155,46 @@ private _fnc_addContents = { // Process removal { - private _itemCount = _allItemsCount select _forEachIndex; - private _containerIndex = _containerNames find _x; + _x params ["_itemClass", "_itemCargoOrCount", "_magazinesAmmoCargo", "_weaponsItemsCargo"]; - if (_count != 0 && {_x == _item}) then { + if (_count != 0 && {_itemClass == _item}) then { // Process removal - if (_containerIndex < 0) then { - _itemCount = _itemCount - _count; - if (_itemCount > 0) then { - // Add with new count - _container addItemCargoGlobal [_x, _itemCount]; - }; + if (count _x < 4) then { + // Non-container item + // Add with new count + _container addItemCargoGlobal [_itemClass, _itemCargoOrCount - _count]; // Silently fails on 'count < 1' + TRACE_2("Readding",_itemClass,_itemCargoOrCount - _count); + + _count = 0; } else { + // Container item + _count = _count - 1; + if (_keepContents) then { - (_containerData select _containerIndex) params ["_itemCargo", "_magazinesAmmoCargo", "_weaponsItemsCargo"]; - [_container, _itemCargo, _magazinesAmmoCargo, _weaponsItemsCargo] call _fnc_addContents; + [_container, _itemCargoOrCount, _magazinesAmmoCargo, _weaponsItemsCargo] call _fnc_addContents; }; - - _containerData deleteAt _containerIndex; - _containerNames deleteAt _containerIndex; }; - _count = 0; } else { // Readd only - if (_containerIndex < 0) then { - _container addItemCargoGlobal [_x, _itemCount]; + if (count _x < 4) then { + // Non-container item + _container addItemCargoGlobal [_itemClass, _itemCargoOrCount]; + TRACE_2("Readding",_itemClass,_itemCargoOrCount); } else { - (_containerData select _containerIndex) params ["_itemCargo", "_magazinesAmmoCargo", "_weaponsItemsCargo"]; - + // Container item // Save all containers for finding the one we readd after this private _addedContainers = ((everyContainer _container) apply {_x select 1}) - everyBackpack _container; // Readd - private _addedContainer = [_containerNames select _containerIndex] call CBA_fnc_getNonPresetClass; + private _addedContainer = [_itemClass] call CBA_fnc_getNonPresetClass; _container addItemCargoGlobal [_addedContainer, 1]; // Find just added container and add contents (no command returns reference when adding) private _addedContainer = ((((everyContainer _container) apply {_x select 1}) - everyBackpack _container) - _addedContainers) select 0; - [_addedContainer, _itemCargo, _magazinesAmmoCargo, _weaponsItemsCargo] call _fnc_addContents; + [_addedContainer, _itemCargoOrCount, _magazinesAmmoCargo, _weaponsItemsCargo] call _fnc_addContents; }; }; -} forEach _allItemsType; +} forEach _containerData; (_count == 0) diff --git a/addons/common/test_inventory.sqf b/addons/common/test_inventory.sqf index 013bec075..e3ff04528 100644 --- a/addons/common/test_inventory.sqf +++ b/addons/common/test_inventory.sqf @@ -97,7 +97,7 @@ clearBackpackCargoGlobal _container; _container addBackpackCargoGlobal ["B_AssaultPack_mcamo_Ammo", 1]; _result = [_container, "B_AssaultPack_mcamo_Ammo", 1, true] call CBA_fnc_removeBackpackCargo; TEST_TRUE(_result,_funcName); -TEST_TRUE(count (backpackCargo _container) == 0 && count (itemCargo _container) == 4 && count (magazineCargo _container) == 19,_funcName); +TEST_TRUE(count (backpackCargo _container) == 0 && count (itemCargo _container) == 4 && count (magazineCargo _container) == 20,_funcName); clearBackpackCargoGlobal _container; clearItemCargoGlobal _container; clearMagazineCargoGlobal _container; @@ -141,6 +141,11 @@ TEST_TRUE(_result,_funcName); TEST_TRUE(count (itemCargo _container) == 2,_funcName); clearItemCargoGlobal _container; +_container addItemCargoGlobal ["V_PlateCarrier1_rgr", 5]; +_result = [_container, "V_PlateCarrier1_rgr", 1] call CBA_fnc_removeItemCargo; +TEST_TRUE(count (itemCargo _container) == 4,_funcName); +clearItemCargoGlobal _container; + _container addItemCargoGlobal ["V_PlateCarrier1_rgr", 1]; (((everyContainer _container) select 0) select 1) addItemCargoGlobal ["FirstAidKit", 5]; _container addItemCargoGlobal ["FirstAidKit", 5]; From 42622e9d98421e2e93b19234c76598e673882fb0 Mon Sep 17 00:00:00 2001 From: Kex Date: Sun, 30 Jun 2019 21:21:58 +0200 Subject: [PATCH 017/116] Use BI's new matrix commands (#1173) * Use BI's new matrix commands * Add DEPRECATED markers --- addons/vectors/fnc_matrixProduct3D.sqf | 8 +++----- addons/vectors/fnc_matrixTranspose.sqf | 10 +++------- addons/vectors/fnc_vectMap3D.sqf | 2 +- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/addons/vectors/fnc_matrixProduct3D.sqf b/addons/vectors/fnc_matrixProduct3D.sqf index 903b6dc4d..8511304bc 100755 --- a/addons/vectors/fnc_matrixProduct3D.sqf +++ b/addons/vectors/fnc_matrixProduct3D.sqf @@ -7,6 +7,8 @@ Description: Only accepts 3x3 matrices. + DEPRECATED. Use matrixMultiply instead. + Parameters: _matrixA - first 3x3 matrix. _matrixB - second 3x3 matrix. @@ -26,8 +28,4 @@ Author: params [["_matrixA", [], [[]], 3], ["_matrixB", [], [[]], 3]]; -_matrixB = [_matrixB] call CBA_fnc_matrixTranspose; -_matrixA apply { - private _rowA = _x; - _matrixB apply {_rowA vectorDotProduct _x} -} // return +_matrixA matrixMultiply _matrixB diff --git a/addons/vectors/fnc_matrixTranspose.sqf b/addons/vectors/fnc_matrixTranspose.sqf index bbf2a6eb7..456f85395 100755 --- a/addons/vectors/fnc_matrixTranspose.sqf +++ b/addons/vectors/fnc_matrixTranspose.sqf @@ -7,6 +7,8 @@ Description: Accepts any mxn matrix. + DEPRECATED. Use matrixTranspose instead. + Parameters: _matrix - mxn matrix to transpose. @@ -25,10 +27,4 @@ Author: params [["_matrix", [], [[]]]]; -private _returnMatrix = []; - -for "_j" from 0 to (count (_matrix select 0) - 1) do { - _returnMatrix pushBack (_matrix apply {_x select _j}); -}; - -_returnMatrix +matrixTranspose _matrix diff --git a/addons/vectors/fnc_vectMap3D.sqf b/addons/vectors/fnc_vectMap3D.sqf index ac231412b..060c4db9e 100755 --- a/addons/vectors/fnc_vectMap3D.sqf +++ b/addons/vectors/fnc_vectMap3D.sqf @@ -26,4 +26,4 @@ Author: params [["_matrix", [], [[]], 3], ["_vector", [], [[]], 3]]; -_matrix apply {_x vectorDotProduct _vector} // return +([_vector] matrixMultiply matrixTranspose _matrix) select 0 From 508ebd303d4969fdf58257804a6ce0de5f89e207 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 6 Jul 2019 11:00:11 +0200 Subject: [PATCH 018/116] Notify - Skippable parameter, Lifetime Setting, Use in Accessory component (#1175) * Added queueing param to notify * added lifetime param * typo * replaced lifetime define with variable * Change force show to skippable notification, Remove lifetime parameter, Update header documentation * Fix skippable, Add Notification Lifetime setting, Move Store Password setting to initSettings.sqf * Use CBA_fnc_notify with attachment image in accessory functions * Optimize - split skippable (WUAE) and non-skippable handling (WAE) * Larger switch accessory icon * Use CBA_fnc_addSetting for Store Password setting --- addons/accessory/fnc_switchAttachment.sqf | 5 +- addons/ui/XEH_preInit.sqf | 22 +----- addons/ui/fnc_notify.sqf | 91 ++++++++++++++++------- addons/ui/initSettings.sqf | 28 +++++++ addons/ui/script_component.hpp | 8 +- addons/ui/stringtable.xml | 6 ++ 6 files changed, 108 insertions(+), 52 deletions(-) create mode 100644 addons/ui/initSettings.sqf diff --git a/addons/accessory/fnc_switchAttachment.sqf b/addons/accessory/fnc_switchAttachment.sqf index 44ed07376..ed58fa81e 100644 --- a/addons/accessory/fnc_switchAttachment.sqf +++ b/addons/accessory/fnc_switchAttachment.sqf @@ -36,7 +36,7 @@ private _currWeaponType = call { _currItem = ""; -1 }; -if (_currWeaponType < 0) exitWith {hint "You are not holding a weapon!"; false}; +if (_currWeaponType < 0) exitWith { false }; #define __cfgWeapons configfile >> "CfgWeapons" #define __currItem __cfgWeapons >> _currItem @@ -80,8 +80,9 @@ if (!isNil "_switchItem") then { }; }; private _switchItemHintText = getText (__cfgWeapons >> _switchItem >> "MRT_SwitchItemHintText"); + private _switchItemHintImage = getText (__cfgWeapons >> _switchItem >> "picture"); if !(_switchItemHintText isEqualTo "") then { - hintSilent format ["%1", _switchItemHintText]; + [[_switchItemHintImage, 2.0], [_switchItemHintText], true] call CBA_fnc_notify; }; playSound "click"; } else { diff --git a/addons/ui/XEH_preInit.sqf b/addons/ui/XEH_preInit.sqf index 9c1912e4e..19f2d57cf 100644 --- a/addons/ui/XEH_preInit.sqf +++ b/addons/ui/XEH_preInit.sqf @@ -1,24 +1,8 @@ #include "script_component.hpp" -[ - QGVAR(StorePasswords), "LIST", - [LLSTRING(StoreServerPasswords), LLSTRING(StoreServerPasswordsTooltip)], - LLSTRING(Category), - [[1, 0, -1], [ - [LLSTRING(SavePasswords), LLSTRING(SavePasswordsTooltip)], - [LLSTRING(DoNotSavePasswords), LLSTRING(DoNotSavePasswordsTooltip)], - [LLSTRING(DeletePasswords), LLSTRING(DeletePasswordsTooltip)] - ], 0], - 2, - { - if (_this isEqualTo -1) then { - profileNamespace setVariable [QGVAR(ServerPasswords), nil]; - }; +ADDON = false; - profileNamespace setVariable [QGVAR(StorePasswords), _this]; - saveProfileNamespace; - } -] call cba_settings_fnc_init; +#include "initSettings.sqf" if (hasInterface) then { call COMPILE_FILE(flexiMenu\init); @@ -46,3 +30,5 @@ FUNC(menuShortcut) = CBA_fnc_flexiMenu_menuShortcut; FUNC(mouseButtonDown) = CBA_fnc_flexiMenu_mouseButtonDown; FUNC(highlightCaretKey) = CBA_fnc_flexiMenu_highlightCaretKey; FUNC(execute) = CBA_fnc_flexiMenu_execute; + +ADDON = true; diff --git a/addons/ui/fnc_notify.sqf b/addons/ui/fnc_notify.sqf index 54a83476a..e66e3a3a0 100644 --- a/addons/ui/fnc_notify.sqf +++ b/addons/ui/fnc_notify.sqf @@ -6,18 +6,21 @@ Description: Display a text message. Multiple incoming messages are queued. Parameters: - _content - ARRAY - _line1 - ARRAY - _line2 - ARRAY + _content - Notifications content (lines). + _line1 - First content line. + _line2 - Second content line. ... - _lineN - ARRAY - _text - STRING, NUMBER: Text to display or path to .paa or .jpg image. - _size - NUMBER: Text or image size multiplier, optional, default: 1 - _color - ARRAY: RGB or RGBA color (range 0-1), optional, default: [1,1,1,1] + _lineN - N-th content line (may be passed directly if only 1 line is required). + _text - Text to display or path to .paa or .jpg image (may be passed directly if only text is required). + _size - Text or image size multiplier. (optional, default: 1) + _color - RGB or RGBA color (range 0-1). (optional, default: [1, 1, 1, 1]) + _skippable - Skip or overwrite this notification if another entered the queue. (optional, default: false) Examples: (begin example) + "Banana" call CBA_fnc_notify; ["Banana", 1.5, [1, 1, 0, 1]] call CBA_fnc_notify; + [["Banana", 1.5, [1, 1, 0, 1]], ["Not Apple"], true] call CBA_fnc_notify; (end) Returns: @@ -27,7 +30,6 @@ Authors: commy2 ---------------------------------------------------------------------------- */ -#define LIFE_TIME 4 #define FADE_IN_TIME 0.2 #define FADE_OUT_TIME 1 @@ -47,8 +49,16 @@ if !(_this select 0 isEqualType []) then { }; private _composition = []; +private _skippable = false; { + // Additional arguments at the end + if (_x isEqualType true) exitWith { + TRACE_1("Skippable argument",_x); + _skippable = _x; + }; + + // Line _composition pushBack lineBreak; _x params [["_text", "", ["", 0]], ["_size", 1, [0]], ["_color", [], [[]], [3,4]]]; @@ -77,15 +87,34 @@ private _composition = []; _composition deleteAt 0; +private _notification = [_composition, _skippable]; + // add the queue if (isNil QGVAR(notifyQueue)) then { GVAR(notifyQueue) = []; }; -GVAR(notifyQueue) pushBack _composition; +GVAR(notifyQueue) pushBack _notification; + +private _fnc_popQueue = { + params ["_controls", "_fnc_processQueue"]; + + GVAR(notifyQueue) deleteAt 0; + private _notification = GVAR(notifyQueue) select 0; + + if (!isNil "_notification") then { + _notification call _fnc_processQueue; + } else { + // fade out + { + _x ctrlSetFade 1; + _x ctrlCommit (FADE_OUT_TIME); + } forEach _controls; + }; +}; private _fnc_processQueue = { - private _composition = _this; + params ["_composition", "_skippable"]; QGVAR(notify) cutRsc ["RscTitleDisplayEmpty", "PLAIN", 0, true]; private _display = uiNamespace getVariable "RscTitleDisplayEmpty"; @@ -156,27 +185,33 @@ private _fnc_processQueue = { _x ctrlCommit (FADE_IN_TIME); } forEach _controls; - // pop queue - [{ - params ["_controls", "_fnc_processQueue"]; - - GVAR(notifyQueue) deleteAt 0; - private _composition = GVAR(notifyQueue) select 0; - - if (!isNil "_composition") then { - _composition call _fnc_processQueue; - } else { - // fade out - { - _x ctrlSetFade 1; - _x ctrlCommit (FADE_OUT_TIME); - } forEach _controls; - }; - }, [_controls, _fnc_processQueue], LIFE_TIME] call CBA_fnc_waitAndExecute; + // pop queue - waitUntilAndExecute for skippable, waitAndExecute for non-skippable for less wasted condition checking + TRACE_3("Pop wait",_composition,_skippable,GVAR(notifyQueue)); + if (_skippable) then { + [{ + // Wait for another notification to be added + count GVAR(notifyQueue) > 1 + }, { + // Condition met - Show next notification immediately + LOG("Skipped queue process"); + params ["_fnc_popQueue", "_controls", "_fnc_processQueue"]; + [_controls, _fnc_processQueue] call _fnc_popQueue; + }, [_fnc_popQueue, _controls, _fnc_processQueue], GVAR(notifyLifetime), { + // Timeout - Normally move to next notification + LOG("Normal queue process"); + params ["_fnc_popQueue", "_controls", "_fnc_processQueue"]; + [_controls, _fnc_processQueue] call _fnc_popQueue; + }] call CBA_fnc_waitUntilAndExecute; + } else { + [{ + params ["_fnc_popQueue", "_controls", "_fnc_processQueue"]; + [_controls, _fnc_processQueue] call _fnc_popQueue; + }, [_fnc_popQueue, _controls, _fnc_processQueue], GVAR(notifyLifetime)] call CBA_fnc_waitAndExecute; + }; }; if (count GVAR(notifyQueue) isEqualTo 1) then { - _composition call _fnc_processQueue; + _notification call _fnc_processQueue; }; nil diff --git a/addons/ui/initSettings.sqf b/addons/ui/initSettings.sqf new file mode 100644 index 000000000..111e1cf37 --- /dev/null +++ b/addons/ui/initSettings.sqf @@ -0,0 +1,28 @@ +[ + QGVAR(StorePasswords), "LIST", + [LLSTRING(StoreServerPasswords), LLSTRING(StoreServerPasswordsTooltip)], + LLSTRING(Category), + [[1, 0, -1], [ + [LLSTRING(SavePasswords), LLSTRING(SavePasswordsTooltip)], + [LLSTRING(DoNotSavePasswords), LLSTRING(DoNotSavePasswordsTooltip)], + [LLSTRING(DeletePasswords), LLSTRING(DeletePasswordsTooltip)] + ], 0], + 2, + { + if (_this isEqualTo -1) then { + profileNamespace setVariable [QGVAR(ServerPasswords), nil]; + }; + + profileNamespace setVariable [QGVAR(StorePasswords), _this]; + saveProfileNamespace; + } +] call CBA_fnc_addSetting; + +[ + QGVAR(notifyLifetime), + "SLIDER", + [LLSTRING(NotifyLifetime), LLSTRING(NotifyLifetimeTooltip)], + LLSTRING(Category), + [1, 10, 4, 1], // default value + 2 // global +] call CBA_fnc_addSetting; diff --git a/addons/ui/script_component.hpp b/addons/ui/script_component.hpp index 739e89540..90db9c411 100644 --- a/addons/ui/script_component.hpp +++ b/addons/ui/script_component.hpp @@ -1,9 +1,9 @@ -#define COMPONENT ui +#define COMPONENT ui #include "\x\cba\addons\main\script_mod.hpp" -//#define DEBUG_MODE_FULL -//#define DISABLE_COMPILE_CACHE -//#define DEBUG_ENABLED_UI +// #define DEBUG_MODE_FULL +// #define DISABLE_COMPILE_CACHE +// #define DEBUG_ENABLED_UI #ifdef DEBUG_ENABLED_UI #define DEBUG_MODE_FULL diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index bf6c17178..553894b55 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -145,5 +145,11 @@ Pokaż własne/wgrane misje Mostra missioni custom + + Notification Lifetime + + + Notification display duration in seconds. + From a89b691ee65d2044579cb2c7ac5651d6a7b3713d Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 6 Jul 2019 13:08:18 +0200 Subject: [PATCH 019/116] Scripted optics updates (#1176) * add hideMagnification parameter for scripted optics * add disableTilt parameter for scripted optics * fix pip not updated when changing optics * disable debug --- addons/optics/XEH_preInit.sqf | 3 +++ addons/optics/fnc_animateScriptedOptic.sqf | 10 ++++++++-- addons/optics/fnc_updateOpticInfo.sqf | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/addons/optics/XEH_preInit.sqf b/addons/optics/XEH_preInit.sqf index a6478bfbf..a1f2188bb 100644 --- a/addons/optics/XEH_preInit.sqf +++ b/addons/optics/XEH_preInit.sqf @@ -34,6 +34,8 @@ GVAR(manualReticleNightSwitch) = false; GVAR(useReticleNight) = false; GVAR(reticleSafezoneSize) = RETICLE_SAFEZONE_DEFAULT_SIZE; GVAR(hidePeripheralVision) = false; +GVAR(hideMagnification) = false; +GVAR(disableTilt) = false; // Update optic info. ["weapon", { @@ -44,6 +46,7 @@ GVAR(hidePeripheralVision) = false; ["loadout", { params ["_unit"]; _unit call FUNC(updateOpticInfo); + _unit call FUNC(changePIPOpticClass); _unit call FUNC(changeCarryHandleOpticClass); }] call CBA_fnc_addPlayerEventHandler; diff --git a/addons/optics/fnc_animateScriptedOptic.sqf b/addons/optics/fnc_animateScriptedOptic.sqf index 30ad84ac5..b21e512d0 100644 --- a/addons/optics/fnc_animateScriptedOptic.sqf +++ b/addons/optics/fnc_animateScriptedOptic.sqf @@ -78,7 +78,7 @@ _ctrlMagnification ctrlSetText format [ [_zoom, 1, 1] call CBA_fnc_formatNumber ]; -_ctrlMagnification ctrlShow (_zoom >= 1); +_ctrlMagnification ctrlShow (_zoom >= 1 && {!GVAR(hideMagnification)}); private _positionMagnification = ctrlPosition _ctrlZeroing; _positionMagnification set [0, _positionMagnification#0 + ctrlTextWidth _ctrlZeroing]; @@ -116,7 +116,13 @@ _ctrlBody ctrlSetTextColor [1,1,1,_dayOpacity]; _ctrlBodyNight ctrlSetTextColor [1,1,1,_nightOpacity]; _ctrlBlackScope ctrlShow (GVAR(usePipOptics) && !isPipEnabled); -private _bank = call FUNC(gunBank); +// tilt while leaning +private _bank = 0; + +if (!GVAR(disableTilt)) then { + _bank = call FUNC(gunBank); +}; + _ctrlReticle ctrlSetAngle [_bank, 0.5, 0.5]; _ctrlBody ctrlSetAngle [_bank, 0.5, 0.5]; _ctrlBodyNight ctrlSetAngle [_bank, 0.5, 0.5]; diff --git a/addons/optics/fnc_updateOpticInfo.sqf b/addons/optics/fnc_updateOpticInfo.sqf index da8db29a3..d6ba36a55 100644 --- a/addons/optics/fnc_updateOpticInfo.sqf +++ b/addons/optics/fnc_updateOpticInfo.sqf @@ -111,6 +111,9 @@ GVAR(ppEffects) = getArray (_config >> "opticsPPEffects") apply { _ppEffect }; +GVAR(hideMagnification) = getNumber (_config >> "hideMagnification") != 0; +GVAR(disableTilt) = getNumber (_config >> "disableTilt") != 0; + [uiNamespace getVariable QGVAR(ScriptedOpticDisplay), false] call FUNC(loadScriptedOptic); //INFO_1("Updated optic info %1.",_optic); From 87f11add6fe592b374f4567b369e9363041ac3c8 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 6 Jul 2019 17:43:04 +0200 Subject: [PATCH 020/116] Bump to v3.12.0.190706 --- README.md | 2 +- addons/main/script_version.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bea7a7935..89dce97f5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Community Base Addons [![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) [![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.0) -[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.12.0.190621) +[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.12.0.190706) [![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) [![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) [![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 0d97c5ecc..b2f24912a 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 #define PATCHLVL 0 -#define BUILD 190621 +#define BUILD 190706 From a1132ec93b7e5aaac7b23fef66bd08427a51cdd5 Mon Sep 17 00:00:00 2001 From: McDiod Date: Sun, 7 Jul 2019 17:53:18 +0200 Subject: [PATCH 021/116] add failure code argument to fnc_progressBar (#1177) --- addons/ui/fnc_progressBar.sqf | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/ui/fnc_progressBar.sqf b/addons/ui/fnc_progressBar.sqf index 1042bc69c..074f22c8e 100644 --- a/addons/ui/fnc_progressBar.sqf +++ b/addons/ui/fnc_progressBar.sqf @@ -25,6 +25,11 @@ Arguments: #1 - true: success, false: failure #2 - elapsed time, not more than _totalTime #3 - total time, same as _totalTime + #4 - failure code + 0 - no failure + 1 - user hit ESC key + 2 - condition was false + 3 - progressbar closed by new progressbar Returns: Nothing @@ -75,7 +80,7 @@ if (!isNil QGVAR(ProgressBarParams)) then { GVAR(ProgressBarParams) params ["_arguments", "", "", "_onFailure", "_startTime", "_totalTime"]; private _elapsedTime = (CBA_missionTime - _startTime) min _totalTime; - [_onFailure, [_arguments, false, _elapsedTime, _totalTime]] call CBA_fnc_execNextFrame; + [_onFailure, [_arguments, false, _elapsedTime, _totalTime, 3]] call CBA_fnc_execNextFrame; }; GVAR(ProgressBarParams) = [_arguments, _condition, _onSuccess, _onFailure, CBA_missionTime, _totalTime, _blockMouse, _blockKeys, _allowClose]; @@ -101,14 +106,14 @@ _ctrlScript ctrlAddEventHandler ["Draw", { GVAR(ProgressBarParams) = nil; {QGVAR(ProgressBar) cutText ["", "PLAIN"]} call CBA_fnc_execNextFrame; // game would crash if display is killed from Draw event _blockInputDisplay closeDisplay 0; - [_onFailure, [_arguments, false, _elapsedTime, _totalTime]] call CBA_fnc_execNextFrame; + [_onFailure, [_arguments, false, _elapsedTime, _totalTime, 2]] call CBA_fnc_execNextFrame; }; if (_elapsedTime >= _totalTime) exitWith { GVAR(ProgressBarParams) = nil; {QGVAR(ProgressBar) cutText ["", "PLAIN"]} call CBA_fnc_execNextFrame; // game would crash if display is killed from Draw event _blockInputDisplay closeDisplay 0; - [_onSuccess, [_arguments, true, _elapsedTime, _totalTime]] call CBA_fnc_execNextFrame; + [_onSuccess, [_arguments, true, _elapsedTime, _totalTime, 0]] call CBA_fnc_execNextFrame; }; private _ctrlBar = _display displayCtrl IDC_PROGRESSBAR_BAR; @@ -135,7 +140,7 @@ if (_blockMouse) then { GVAR(ProgressBarParams) = nil; QGVAR(ProgressBar) cutText ["", "PLAIN"]; _blockInputDisplay closeDisplay 0; - [_onFailure, [_arguments, false, _elapsedTime, _totalTime]] call CBA_fnc_execNextFrame; + [_onFailure, [_arguments, false, _elapsedTime, _totalTime, 1]] call CBA_fnc_execNextFrame; _blockKeys = false; } else { From 15348392f62bcb75d422f7d7f33781e5fc91268b Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 8 Jul 2019 18:21:21 +0200 Subject: [PATCH 022/116] Bump to v3.12.0.190708 --- README.md | 2 +- addons/main/script_version.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 89dce97f5..6642bc0e5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Community Base Addons [![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) [![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.0) -[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.12.0.190706) +[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.12.0.190708) [![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) [![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) [![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index b2f24912a..efe065654 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 #define PATCHLVL 0 -#define BUILD 190706 +#define BUILD 190708 From 72a3af443c4241afdc2e3f3803f2ae2d0af14055 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 8 Jul 2019 19:09:37 +0200 Subject: [PATCH 023/116] Use latest releases URL in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6642bc0e5..ce200a85f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Community Base Addons [![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) [![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.0) -[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/tag/v3.12.0.190708) +[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/latest) [![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) [![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) [![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) From 4159b354ae67b762fc73c8f6245bd3ce6101041e Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 25 Jul 2019 16:03:52 -0500 Subject: [PATCH 024/116] XEH - Add direct XEH support for 1.94 objects (#1182) * XEH - Add direct XEH support for 1.94 objects * gm xeh * add Contact xeh * hide story soldiers from editor when Contact not loaded --- addons/xeh/CfgVehicles.hpp | 88 +++++++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/addons/xeh/CfgVehicles.hpp b/addons/xeh/CfgVehicles.hpp index e4645044f..e1dcfbb58 100644 --- a/addons/xeh/CfgVehicles.hpp +++ b/addons/xeh/CfgVehicles.hpp @@ -223,7 +223,7 @@ class CfgVehicles { class Respawn_Sleeping_bag_brown_F: Land_Sleeping_bag_brown_F { XEH_ENABLED; }; - + class ReammoBox_F; class Land_RepairDepot_01_base_F: ReammoBox_F { XEH_ENABLED; @@ -306,4 +306,90 @@ class CfgVehicles { class Snake_vipera_random_F: Snake_random_F { XEH_ENABLED; }; + + // GM + class gm_AmmoBox_base: ReammoBox_F { + XEH_ENABLED; + }; + + // Enoch + class Land_PortableDesk_01_base_F; + class Land_PortableDesk_01_animated_base_F: Land_PortableDesk_01_base_F { + XEH_ENABLED; + }; + + class Car; + class SoundSetSource_01_base_F: Car { + XEH_DISABLED; + }; + + class DecontaminationSimulated_base_F; + class DeconShower_01_base_F: DecontaminationSimulated_base_F { + XEH_ENABLED; + }; + class DeconShower_02_base_F: DecontaminationSimulated_base_F { + XEH_ENABLED; + }; + class SCBACylinder_01_base_F: DecontaminationSimulated_base_F { + XEH_ENABLED; + }; + + // Contact + class VirtualAISquad: Logic { + XEH_ENABLED; + }; + + class Particle_Base_F: Thing { + XEH_ENABLED; + }; + + class Alien_Extractor_01_base_F: Items_base_F {}; // Class does not exist without optional Contact component. Recreate inheritance tree up to mandatory base class. + class Alien_Extractor_01_generic_base_F: Alien_Extractor_01_base_F { + XEH_ENABLED; + }; + + class ThingX; + class Alien_MatterBall_01_base_F: ThingX { + XEH_ENABLED; + }; + class Alien_MatterBall_01_falling_F: Alien_MatterBall_01_base_F { + XEH_ENABLED; + }; + + class B_W_Soldier_F; + class B_W_Story_Protagonist_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; // Inherits from a public base class. Downgrade to protected if Contact component is not loaded. + }; + class B_W_Story_Major_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; + class B_W_Story_Instructor_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; + class B_W_Story_Soldier_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; + class B_W_Story_Leader_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; + + class O_R_Soldier_Base_F; + class O_R_Story_Capitan_01_F: O_R_Soldier_Base_F { + XEH_ENABLED; + }; + class O_R_Story_TL_01_F: O_R_Soldier_Base_F { + XEH_ENABLED; + }; + + class C_Story_Scientist_01_F: Civilian_F { + XEH_ENABLED; + }; + class C_Story_Scientist_02_F: Civilian_F { + XEH_ENABLED; + }; }; From 2056941ba2cceca3fceb4591b8f0c38f25a74ee0 Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Thu, 25 Jul 2019 23:04:29 +0200 Subject: [PATCH 025/116] Update loadorder for 1.94 Contact DLC (#1171) * Update loadorder for 1.94 Contact DLC * Updated required version Added Mod loadorder --- addons/common/config.cpp | 2 +- addons/main/script_mod.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/common/config.cpp b/addons/common/config.cpp index 7742c1ce8..a9b2c1eea 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -8,7 +8,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"A3_Data_F_Tank_Loadorder"}; + requiredAddons[] = {"A3_Data_F_Enoch_Loadorder", "A3_Data_F_Mod_Loadorder"}; version = VERSION; authors[] = {"Spooner","Sickboy","Rocko"}; }; diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 102a1b728..923bd0835 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -9,7 +9,7 @@ #define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. -#define REQUIRED_VERSION 1.92 +#define REQUIRED_VERSION 1.94 /* // Defined DEBUG_MODE_NORMAL in a few CBA_fncs to prevent looped logging :) From 7ebac50f0567d15585050cd93fab2dd052ba20ae Mon Sep 17 00:00:00 2001 From: Drofseh Date: Thu, 25 Jul 2019 14:43:47 -0700 Subject: [PATCH 026/116] Add magwells for SCAR rifle magazines when EGLM is mounted (#1179) --- addons/jam/magwells_556x45.hpp | 1 + addons/jam/magwells_762x51.hpp | 1 + 2 files changed, 2 insertions(+) diff --git a/addons/jam/magwells_556x45.hpp b/addons/jam/magwells_556x45.hpp index 413be1e70..f2faf7a8a 100644 --- a/addons/jam/magwells_556x45.hpp +++ b/addons/jam/magwells_556x45.hpp @@ -16,6 +16,7 @@ class CBA_556x45_TYPE97 {}; // QBZ-97 Stick Mags class CBA_556x45_TYPE97_XL {}; // QBB-97 LSW Drums + class CBA_556x45_SCAR_EGLM {}; // SCAR-L with EGLM/FN40GL/Mk 13 Mod 0 grenage launcher (This extends the length of the magwell and prevents mags that are too short or wide from being used) class CBA_556x45_SG550 {}; class CBA_556x45_STANAG { // STANAG mags, standard length, including small drums diff --git a/addons/jam/magwells_762x51.hpp b/addons/jam/magwells_762x51.hpp index 8e72b1902..c5ddbbbf6 100644 --- a/addons/jam/magwells_762x51.hpp +++ b/addons/jam/magwells_762x51.hpp @@ -42,6 +42,7 @@ }; class CBA_762x51_SCAR {}; // SCAR-H + class CBA_762x51_SCAR_EGLM {}; // SCAR-H with EGLM/FN40GL/Mk 13 Mod 0 grenage launcher (This extends the length of the magwell and prevents mags that are too short or wide from being used) class CBA_762x51_SIGAMT {}; // SIG 510-4, AMT //Deprecated classes do not use From 5fd88fac8ce2e1455e6f5e1bd4c0dae733c61164 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 25 Jul 2019 20:55:31 -0500 Subject: [PATCH 027/116] 1.94 - Fix GL magwells (#1183) * 1.94 - Fix GL magwells * fix += usage * additional config for usage of += in both parent class and class --- addons/jam/CfgWeapons.hpp | 6 +----- addons/jam/jam_finish/CfgWeapons.hpp | 10 ++++++++++ addons/jam/jam_finish/config.cpp | 16 ++++++++++++++++ addons/jam/jam_finish/script_component.hpp | 3 +++ 4 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 addons/jam/jam_finish/CfgWeapons.hpp create mode 100644 addons/jam/jam_finish/config.cpp create mode 100644 addons/jam/jam_finish/script_component.hpp diff --git a/addons/jam/CfgWeapons.hpp b/addons/jam/CfgWeapons.hpp index dc7df346f..e5b870cfd 100644 --- a/addons/jam/CfgWeapons.hpp +++ b/addons/jam/CfgWeapons.hpp @@ -22,15 +22,11 @@ class CfgWeapons { class GrenadeLauncher; class UGL_F: GrenadeLauncher { - magazineWell[] += {"CBA_40mm_M203","CBA_40mm_EGLM"}; // empty in vanilla + magazineWell[] += {"CBA_40mm_M203","CBA_40mm_EGLM"}; }; class arifle_MX_Base_F: Rifle_Base_F { magazineWell[] += {"CBA_65x39_MX","CBA_65x39_MX_XL"}; - - class GL_3GL_F: UGL_F { - magazineWell[] += {"CBA_40mm_3GL","CBA_40mm_M203","CBA_40mm_EGLM"}; // [] in vanilla - }; }; class arifle_Katiba_Base_F: Rifle_Base_F { diff --git a/addons/jam/jam_finish/CfgWeapons.hpp b/addons/jam/jam_finish/CfgWeapons.hpp new file mode 100644 index 000000000..454641146 --- /dev/null +++ b/addons/jam/jam_finish/CfgWeapons.hpp @@ -0,0 +1,10 @@ +class CfgWeapons { + class UGL_F; + + class Rifle_Base_F; + class arifle_MX_Base_F: Rifle_Base_F { + class GL_3GL_F: UGL_F { + magazineWell[] += {"CBA_40mm_3GL","CBA_40mm_M203","CBA_40mm_EGLM"}; // Cannot use += without leaking values if used on parent class in the same config patch. + }; + }; +}; diff --git a/addons/jam/jam_finish/config.cpp b/addons/jam/jam_finish/config.cpp new file mode 100644 index 000000000..6257b8fd4 --- /dev/null +++ b/addons/jam/jam_finish/config.cpp @@ -0,0 +1,16 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + author = "$STR_CBA_Author"; + name = ECSTRING(jam,component); + url = "$STR_CBA_URL"; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"cba_jam"}; + version = VERSION; + }; +}; + +#include "CfgWeapons.hpp" diff --git a/addons/jam/jam_finish/script_component.hpp b/addons/jam/jam_finish/script_component.hpp new file mode 100644 index 000000000..9e174c839 --- /dev/null +++ b/addons/jam/jam_finish/script_component.hpp @@ -0,0 +1,3 @@ +#define COMPONENT jam_finish +#include "\x\cba\addons\main\script_mod.hpp" +#include "\x\cba\addons\main\script_macros.hpp" From 10df1c5b112648f66bcd2ece692a675524fc7a67 Mon Sep 17 00:00:00 2001 From: Dedmen Miller Date: Fri, 26 Jul 2019 08:52:42 +0200 Subject: [PATCH 028/116] Add Contact DLC JointRails (#1181) * Add Contact DLC JointRails * add enoch jr * capitalization fix 1 * capitalization fix 2 * add contact jr * delete a thing that does not belong * fix some scope errors, trim superfluous dummy classes --- addons/jam/config.cpp | 2 -- addons/jr/{cfgweapons.hpp => Cfgweapons.hpp} | 26 ++++++++++++++++++++ addons/jr/jr_classes.hpp | 26 ++++++++++++++++++-- 3 files changed, 50 insertions(+), 4 deletions(-) rename addons/jr/{cfgweapons.hpp => Cfgweapons.hpp} (98%) diff --git a/addons/jam/config.cpp b/addons/jam/config.cpp index beb25a618..f3bfcbd27 100644 --- a/addons/jam/config.cpp +++ b/addons/jam/config.cpp @@ -7,8 +7,6 @@ class CfgPatches { url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; - magazines[] = {}; - ammo[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; version = VERSION; diff --git a/addons/jr/cfgweapons.hpp b/addons/jr/Cfgweapons.hpp similarity index 98% rename from addons/jr/cfgweapons.hpp rename to addons/jr/Cfgweapons.hpp index 799e337f7..46916af17 100644 --- a/addons/jr/cfgweapons.hpp +++ b/addons/jr/Cfgweapons.hpp @@ -971,4 +971,30 @@ class CfgWeapons { }; }; }; + + // Contact DLC dummies + class acc_flashlight; + class acc_flashlight_broken: acc_flashlight { + scope = 1; // Optional protected class inheriting from a public base class. + }; + + class acc_pointer_IR; + class acc_pointer_IR_broken: acc_pointer_IR { + scope = 1; + }; + + class optic_Aco; + class optic_Aco_broken: optic_Aco { + scope = 1; + }; + + class optic_Hamr; + class optic_Hamr_broken: optic_Hamr { + scope = 1; + }; + + class optic_MRCO; + class optic_MRCO_broken: optic_MRCO { + scope = 1; + }; }; diff --git a/addons/jr/jr_classes.hpp b/addons/jr/jr_classes.hpp index b03c23599..085eba860 100644 --- a/addons/jr/jr_classes.hpp +++ b/addons/jr/jr_classes.hpp @@ -28,7 +28,9 @@ class asdg_FrontSideRail: asdg_SlotInfo { // Laser / flashlight rail iconPicture = "\a3\weapons_f\Data\ui\attachment_side"; class compatibleItems { acc_flashlight = 1; + acc_flashlight_broken = 1; // Contact acc_pointer_IR = 1; + acc_pointer_IR_broken = 1; // Contact }; }; @@ -46,6 +48,8 @@ class asdg_UnderSlot: asdg_SlotInfo { // Base under barrel slot bipod_03_F_blk = 1; bipod_03_F_oli = 1; bipod_01_F_khk = 1; + bipod_02_F_arid = 1; // Enoch + bipod_02_F_lush = 1; // Enoch }; }; @@ -62,6 +66,7 @@ class asdg_PistolUnderRail: asdg_SlotInfo { // under rail for handguns class asdg_PistolOpticMount: asdg_OpticRail { // common handgun optic mount class compatibleItems { optic_MRD = 1; + optic_MRD_black = 1; // Enoch }; }; @@ -71,9 +76,11 @@ class asdg_PistolOpticRail1913: asdg_OpticRail { // MIL-STD-1913 handgun optic r class compatibleItems { optic_Yorris = 1; optic_Holosight = 1; - optic_Holosight_smg = 1; optic_Holosight_blk_F = 1; optic_Holosight_khk_F = 1; + optic_Holosight_arid_F = 1; // Enoch + optic_Holosight_lush_F = 1; // Enoch + optic_Holosight_smg = 1; optic_Holosight_smg_blk_F = 1; optic_Holosight_smg_khk_F = 1; }; @@ -88,23 +95,35 @@ class asdg_OpticRail1913: asdg_OpticRail { // the "medium" rail, long enough to optic_SOS = 1; optic_SOS_khk_F = 1; optic_MRCO = 1; + optic_MRCO_broken = 1; // Contact optic_Arco = 1; optic_Arco_ghex_F = 1; optic_Arco_blk_F = 1; + optic_Arco_AK_arid_F = 1; // Enoch + optic_Arco_AK_blk_F = 1; // Enoch + optic_Arco_AK_lush_F = 1; // Enoch + optic_Arco_arid_F = 1; // Enoch + optic_Arco_lush_F = 1; // Enoch optic_aco = 1; optic_ACO_grn = 1; + optic_Aco_broken = 1; // Contact optic_aco_smg = 1; optic_ACO_grn_smg = 1; optic_hamr = 1; optic_Hamr_khk_F = 1; + optic_Hamr_broken = 1; // Contact optic_Holosight = 1; - optic_Holosight_smg = 1; optic_Holosight_blk_F = 1; optic_Holosight_khk_F = 1; + optic_Holosight_arid_F = 1; // Enoch + optic_Holosight_lush_F = 1; // Enoch + optic_Holosight_smg = 1; optic_Holosight_smg_blk_F = 1; optic_Holosight_smg_khk_F = 1; optic_DMS = 1; optic_DMS_ghex_F = 1; + optic_DMS_weathered_F = 1; // Enoch + optic_DMS_weathered_Kir_F = 1; // Enoch optic_LRPS = 1; optic_LRPS_ghex_F = 1; optic_LRPS_tna_F = 1; @@ -182,6 +201,8 @@ class asdg_MuzzleSlot_762: asdg_MuzzleSlot { // for 7.62x51 universal mount supp muzzle_snds_B = 1; muzzle_snds_B_khk_F = 1; muzzle_snds_B_snd_F = 1; + muzzle_snds_B_arid_F = 1; + muzzle_snds_B_lush_F = 1; }; }; @@ -193,6 +214,7 @@ class asdg_MuzzleSlot_65: asdg_MuzzleSlot_762 { // for 6.5 weapons, mostly to de muzzle_snds_65_TI_blk_F = 1; muzzle_snds_65_TI_hex_F = 1; muzzle_snds_65_TI_ghex_F = 1; + muzzle_tma_65 = 1; // Enoch }; }; From 547cab0767e78aa5c94181f1e7bfa3bd05ba47c4 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 08:53:56 +0200 Subject: [PATCH 029/116] fix file capitalization part 1 --- addons/jr/{Cfgweapons.hpp => CfgWweapons.hpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/jr/{Cfgweapons.hpp => CfgWweapons.hpp} (100%) diff --git a/addons/jr/Cfgweapons.hpp b/addons/jr/CfgWweapons.hpp similarity index 100% rename from addons/jr/Cfgweapons.hpp rename to addons/jr/CfgWweapons.hpp From d9cab5a44d5f4ca700ee42b912874d692d2d7595 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 08:54:18 +0200 Subject: [PATCH 030/116] fix file capitalization part 2 --- addons/jr/{CfgWweapons.hpp => CfgWeapons.hpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename addons/jr/{CfgWweapons.hpp => CfgWeapons.hpp} (100%) diff --git a/addons/jr/CfgWweapons.hpp b/addons/jr/CfgWeapons.hpp similarity index 100% rename from addons/jr/CfgWweapons.hpp rename to addons/jr/CfgWeapons.hpp From 20b432843cf1471c8d1d28bd98a6e785c444d790 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 09:14:52 +0200 Subject: [PATCH 031/116] move some macros --- addons/jr/config.cpp | 9 --------- addons/jr/script_component.hpp | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/jr/config.cpp b/addons/jr/config.cpp index 71de78cfb..1583a3436 100644 --- a/addons/jr/config.cpp +++ b/addons/jr/config.cpp @@ -1,14 +1,5 @@ #include "script_component.hpp" -#define private 0 // hidden -#define protected 1 // hidden but usable -#define public 2 // visible - -#define ReadAndWrite 0 //! any modifications enabled -#define ReadAndCreate 1 //! only adding new class members is allowed -#define ReadOnly 2 //! no modifications enabled -#define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied - class CfgPatches { class ADDON { author = "$STR_CBA_Author"; diff --git a/addons/jr/script_component.hpp b/addons/jr/script_component.hpp index 8ef4ee5b8..7fad0270a 100644 --- a/addons/jr/script_component.hpp +++ b/addons/jr/script_component.hpp @@ -1,3 +1,12 @@ #define COMPONENT jr #include "\x\cba\addons\main\script_mod.hpp" #include "\x\cba\addons\main\script_macros.hpp" + +#define private 0 // hidden +#define protected 1 // hidden but usable +#define public 2 // visible + +#define ReadAndWrite 0 //! any modifications enabled +#define ReadAndCreate 1 //! only adding new class members is allowed +#define ReadOnly 2 //! no modifications enabled +#define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied From c75104bef47c47884340e2fce86d11175efa3107 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 09:28:07 +0200 Subject: [PATCH 032/116] joint rails - enoch attachment classes compatibility --- addons/jr/CfgWeapons.hpp | 81 +++--------------- addons/jr/jr_prep/CfgWeapons.hpp | 141 ++++++++++++++----------------- 2 files changed, 77 insertions(+), 145 deletions(-) diff --git a/addons/jr/CfgWeapons.hpp b/addons/jr/CfgWeapons.hpp index 46916af17..3364e4317 100644 --- a/addons/jr/CfgWeapons.hpp +++ b/addons/jr/CfgWeapons.hpp @@ -433,35 +433,19 @@ class CfgWeapons { class arifle_MXC_F: arifle_MX_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.5,0.3}; iconScale = 0.2; }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.4}; - iconScale = 0.25; - }; }; }; class arifle_MX_F: arifle_MX_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.5,0.35}; iconScale = 0.2; }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; class UnderBarrelSlot: asdg_UnderSlot { iconPosition[] = {0.2,0.7}; iconScale = 0.2; @@ -471,35 +455,19 @@ class CfgWeapons { class arifle_MX_GL_F: arifle_MX_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.5,0.35}; iconScale = 0.2; }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; }; }; class arifle_MX_SW_F: arifle_MX_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.5,0.35}; iconScale = 0.2; }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; class UnderBarrelSlot: asdg_UnderSlot { iconPosition[] = {0.2,0.7}; iconScale = 0.2; @@ -509,18 +477,10 @@ class CfgWeapons { class arifle_MXM_F: arifle_MX_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.5,0.35}; iconScale = 0.2; }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; class UnderBarrelSlot: asdg_UnderSlot { iconPosition[] = {0.2,0.7}; iconScale = 0.2; @@ -695,19 +655,6 @@ class CfgWeapons { iconPosition[] = {0.5,0.25}; iconScale = 0.2; }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.3,0.35}; - iconScale = 0.2; - }; - }; - }; - - class arifle_AK12_F: arifle_AK12_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.35,0.7}; - iconScale = 0.3; - }; }; }; @@ -931,41 +878,41 @@ class CfgWeapons { model = "\a3\weapons_f\acc\acca_snds_338_green_F"; }; - class SMG_03_TR_BASE : Rifle_Base_F { + class SMG_03_TR_BASE: Rifle_Base_F { class WeaponSlotsInfo; }; - class SMG_03C_BASE : SMG_03_TR_BASE {}; - class SMG_03_TR_black : SMG_03_TR_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { - class CowsSlot : asdg_OpticRail1913_short { + class SMG_03C_BASE: SMG_03_TR_BASE {}; + class SMG_03_TR_black: SMG_03_TR_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.4, 0.3}; iconScale = 0.2; }; - class PointerSlot : asdg_FrontSideRail { + class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.33, 0.37}; iconScale = 0.25; }; }; }; - class SMG_03_TR_hex : SMG_03_TR_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { - class CowsSlot : asdg_OpticRail1913_short { + class SMG_03_TR_hex: SMG_03_TR_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.4, 0.3}; iconScale = 0.2; }; - class PointerSlot : asdg_FrontSideRail { + class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.33, 0.37}; iconScale = 0.25; }; }; }; - class SMG_03C_TR_black : SMG_03C_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { - class CowsSlot : asdg_OpticRail1913_short { + class SMG_03C_TR_black: SMG_03C_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.4, 0.3}; iconScale = 0.2; }; - class PointerSlot : asdg_FrontSideRail { + class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.33, 0.37}; iconScale = 0.25; }; diff --git a/addons/jr/jr_prep/CfgWeapons.hpp b/addons/jr/jr_prep/CfgWeapons.hpp index c40051f42..2dbe386b5 100644 --- a/addons/jr/jr_prep/CfgWeapons.hpp +++ b/addons/jr/jr_prep/CfgWeapons.hpp @@ -1,27 +1,27 @@ class CfgWeapons { class Rifle; - class Rifle_Base_F : Rifle { + class Rifle_Base_F: Rifle { class WeaponSlotsInfo; }; - class Rifle_Short_Base_F : Rifle_Base_F { + class Rifle_Short_Base_F: Rifle_Base_F { class WeaponSlotsInfo; }; - class Rifle_Long_Base_F : Rifle_Base_F { + class Rifle_Long_Base_F: Rifle_Base_F { class WeaponSlotsInfo; }; class Launcher; - class Launcher_Base_F : Launcher { + class Launcher_Base_F: Launcher { class WeaponSlotsInfo; }; - class launch_Titan_base : Launcher_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class launch_Titan_base: Launcher_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete PointerSlot; }; }; - class launch_MRAWS_base_F : Launcher_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class launch_MRAWS_base_F: Launcher_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete PointerSlot; }; }; @@ -30,7 +30,7 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class srifle_EBR_F : EBR_base_F { + class srifle_EBR_F: EBR_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { delete UnderBarrelSlot; }; @@ -38,26 +38,26 @@ class CfgWeapons { class GM6_base_F: Rifle_Long_Base_F {}; - class srifle_GM6_F : GM6_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class srifle_GM6_F: GM6_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; }; }; class LRR_base_F: Rifle_Long_Base_F {}; - class srifle_LRR_F : LRR_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class srifle_LRR_F: LRR_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; }; }; - class DMR_01_base_F : Rifle_Long_Base_F { + class DMR_01_base_F: Rifle_Long_Base_F { class WeaponSlotsInfo; }; - class srifle_DMR_01_F : DMR_01_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class srifle_DMR_01_F: DMR_01_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete UnderBarrelSlot; }; }; @@ -83,32 +83,18 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class arifle_MXC_F : arifle_MX_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { - delete MuzzleSlot; + class arifle_MXC_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; - delete PointerSlot; }; }; - class arifle_MXM_F : arifle_MX_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { - delete MuzzleSlot; - }; - }; - - class arifle_MX_SW_F : arifle_MX_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { - delete MuzzleSlot; - }; - }; - - class arifle_Katiba_Base_F : Rifle_Base_F { + class arifle_Katiba_Base_F: Rifle_Base_F { class WeaponSlotsInfo; }; - class arifle_Katiba_C_F : arifle_Katiba_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_Katiba_C_F: arifle_Katiba_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; @@ -117,14 +103,14 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class arifle_Mk20C_F : mk20_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_Mk20C_F: mk20_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class arifle_Mk20_GL_F : mk20_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_Mk20_GL_F: mk20_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; @@ -133,14 +119,14 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class arifle_TRG20_F : Tavor_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_TRG20_F: Tavor_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class LMG_03_base_F : Rifle_Long_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class LMG_03_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -148,16 +134,16 @@ class CfgWeapons { }; }; - class DMR_07_base_F : Rifle_Long_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class DMR_07_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class SMG_05_base_F : Rifle_Short_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class SMG_05_base_F: Rifle_Short_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -165,7 +151,7 @@ class CfgWeapons { }; }; /* - class arifle_AKS_base_F : Rifle_Base_F { + class arifle_AKS_base_F: Rifle_Base_F { class WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; @@ -173,24 +159,23 @@ class CfgWeapons { }; }; */ - class arifle_AK12_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_AK12_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; - delete PointerSlot; }; }; - class arifle_SPAR_01_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_SPAR_01_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_SPAR_02_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_SPAR_02_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -198,8 +183,8 @@ class CfgWeapons { }; }; - class arifle_SPAR_03_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_SPAR_03_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -207,24 +192,24 @@ class CfgWeapons { }; }; - class arifle_CTAR_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_CTAR_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_CTARS_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_CTARS_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_ARX_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_ARX_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -233,51 +218,51 @@ class CfgWeapons { }; class Pistol; - class Pistol_Base_F : Pistol { + class Pistol_Base_F: Pistol { class WeaponSlotsInfo; }; - class hgun_ACPC2_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_ACPC2_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete PointerSlot; }; }; - class hgun_P07_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_P07_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class hgun_Pistol_heavy_01_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_Pistol_heavy_01_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; delete MuzzleSlot; delete PointerSlot; }; }; - class hgun_Pistol_heavy_02_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_Pistol_heavy_02_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; delete MuzzleSlot; delete PointerSlot; }; }; - class hgun_Rook40_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_Rook40_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class SMG_03_TR_BASE : Rifle_Base_F { + class SMG_03_TR_BASE: Rifle_Base_F { class WeaponSlotsInfo; }; - class SMG_03C_BASE : SMG_03_TR_BASE {}; - class SMG_03C_TR_black : SMG_03C_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { + class SMG_03C_BASE: SMG_03_TR_BASE {}; + class SMG_03C_TR_black: SMG_03C_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; delete PointerSlot; }; From 95f21c35a1a203185177f52efc6d562e33183818 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 09:33:13 +0200 Subject: [PATCH 033/116] config formatting --- addons/jr/CfgWeapons.hpp | 28 +++---- addons/jr/jr_prep/CfgWeapons.hpp | 134 +++++++++++++++---------------- 2 files changed, 81 insertions(+), 81 deletions(-) diff --git a/addons/jr/CfgWeapons.hpp b/addons/jr/CfgWeapons.hpp index 46916af17..dff207cbb 100644 --- a/addons/jr/CfgWeapons.hpp +++ b/addons/jr/CfgWeapons.hpp @@ -931,41 +931,41 @@ class CfgWeapons { model = "\a3\weapons_f\acc\acca_snds_338_green_F"; }; - class SMG_03_TR_BASE : Rifle_Base_F { + class SMG_03_TR_BASE: Rifle_Base_F { class WeaponSlotsInfo; }; - class SMG_03C_BASE : SMG_03_TR_BASE {}; - class SMG_03_TR_black : SMG_03_TR_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { - class CowsSlot : asdg_OpticRail1913_short { + class SMG_03C_BASE: SMG_03_TR_BASE {}; + class SMG_03_TR_black: SMG_03_TR_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.4, 0.3}; iconScale = 0.2; }; - class PointerSlot : asdg_FrontSideRail { + class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.33, 0.37}; iconScale = 0.25; }; }; }; - class SMG_03_TR_hex : SMG_03_TR_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { - class CowsSlot : asdg_OpticRail1913_short { + class SMG_03_TR_hex: SMG_03_TR_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.4, 0.3}; iconScale = 0.2; }; - class PointerSlot : asdg_FrontSideRail { + class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.33, 0.37}; iconScale = 0.25; }; }; }; - class SMG_03C_TR_black : SMG_03C_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { - class CowsSlot : asdg_OpticRail1913_short { + class SMG_03C_TR_black: SMG_03C_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.4, 0.3}; iconScale = 0.2; }; - class PointerSlot : asdg_FrontSideRail { + class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.33, 0.37}; iconScale = 0.25; }; diff --git a/addons/jr/jr_prep/CfgWeapons.hpp b/addons/jr/jr_prep/CfgWeapons.hpp index c40051f42..88dfa1424 100644 --- a/addons/jr/jr_prep/CfgWeapons.hpp +++ b/addons/jr/jr_prep/CfgWeapons.hpp @@ -1,27 +1,27 @@ class CfgWeapons { class Rifle; - class Rifle_Base_F : Rifle { + class Rifle_Base_F: Rifle { class WeaponSlotsInfo; }; - class Rifle_Short_Base_F : Rifle_Base_F { + class Rifle_Short_Base_F: Rifle_Base_F { class WeaponSlotsInfo; }; - class Rifle_Long_Base_F : Rifle_Base_F { + class Rifle_Long_Base_F: Rifle_Base_F { class WeaponSlotsInfo; }; class Launcher; - class Launcher_Base_F : Launcher { + class Launcher_Base_F: Launcher { class WeaponSlotsInfo; }; - class launch_Titan_base : Launcher_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class launch_Titan_base: Launcher_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete PointerSlot; }; }; - class launch_MRAWS_base_F : Launcher_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class launch_MRAWS_base_F: Launcher_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete PointerSlot; }; }; @@ -30,7 +30,7 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class srifle_EBR_F : EBR_base_F { + class srifle_EBR_F: EBR_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { delete UnderBarrelSlot; }; @@ -38,26 +38,26 @@ class CfgWeapons { class GM6_base_F: Rifle_Long_Base_F {}; - class srifle_GM6_F : GM6_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class srifle_GM6_F: GM6_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; }; }; class LRR_base_F: Rifle_Long_Base_F {}; - class srifle_LRR_F : LRR_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class srifle_LRR_F: LRR_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; }; }; - class DMR_01_base_F : Rifle_Long_Base_F { + class DMR_01_base_F: Rifle_Long_Base_F { class WeaponSlotsInfo; }; - class srifle_DMR_01_F : DMR_01_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class srifle_DMR_01_F: DMR_01_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete UnderBarrelSlot; }; }; @@ -83,32 +83,32 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class arifle_MXC_F : arifle_MX_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_MXC_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_MXM_F : arifle_MX_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_MXM_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class arifle_MX_SW_F : arifle_MX_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_MX_SW_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class arifle_Katiba_Base_F : Rifle_Base_F { + class arifle_Katiba_Base_F: Rifle_Base_F { class WeaponSlotsInfo; }; - class arifle_Katiba_C_F : arifle_Katiba_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_Katiba_C_F: arifle_Katiba_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; @@ -117,14 +117,14 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class arifle_Mk20C_F : mk20_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_Mk20C_F: mk20_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class arifle_Mk20_GL_F : mk20_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_Mk20_GL_F: mk20_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; @@ -133,14 +133,14 @@ class CfgWeapons { class WeaponSlotsInfo; }; - class arifle_TRG20_F : Tavor_base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_TRG20_F: Tavor_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class LMG_03_base_F : Rifle_Long_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class LMG_03_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -148,16 +148,16 @@ class CfgWeapons { }; }; - class DMR_07_base_F : Rifle_Long_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class DMR_07_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class SMG_05_base_F : Rifle_Short_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class SMG_05_base_F: Rifle_Short_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -165,7 +165,7 @@ class CfgWeapons { }; }; /* - class arifle_AKS_base_F : Rifle_Base_F { + class arifle_AKS_base_F: Rifle_Base_F { class WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; @@ -173,24 +173,24 @@ class CfgWeapons { }; }; */ - class arifle_AK12_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_AK12_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_SPAR_01_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_SPAR_01_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_SPAR_02_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_SPAR_02_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -198,8 +198,8 @@ class CfgWeapons { }; }; - class arifle_SPAR_03_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_SPAR_03_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -207,24 +207,24 @@ class CfgWeapons { }; }; - class arifle_CTAR_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_CTAR_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_CTARS_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_CTARS_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; }; }; - class arifle_ARX_base_F : Rifle_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class arifle_ARX_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete CowsSlot; delete PointerSlot; @@ -233,51 +233,51 @@ class CfgWeapons { }; class Pistol; - class Pistol_Base_F : Pistol { + class Pistol_Base_F: Pistol { class WeaponSlotsInfo; }; - class hgun_ACPC2_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_ACPC2_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; delete PointerSlot; }; }; - class hgun_P07_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_P07_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class hgun_Pistol_heavy_01_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_Pistol_heavy_01_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; delete MuzzleSlot; delete PointerSlot; }; }; - class hgun_Pistol_heavy_02_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_Pistol_heavy_02_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; delete MuzzleSlot; delete PointerSlot; }; }; - class hgun_Rook40_F : Pistol_Base_F { - class WeaponSlotsInfo : WeaponSlotsInfo { + class hgun_Rook40_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; }; }; - class SMG_03_TR_BASE : Rifle_Base_F { + class SMG_03_TR_BASE: Rifle_Base_F { class WeaponSlotsInfo; }; - class SMG_03C_BASE : SMG_03_TR_BASE {}; - class SMG_03C_TR_black : SMG_03C_BASE { - class WeaponSlotsInfo : WeaponSlotsInfo { + class SMG_03C_BASE: SMG_03_TR_BASE {}; + class SMG_03C_TR_black: SMG_03C_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { delete CowsSlot; delete PointerSlot; }; From 4833ee3d49fedd6f9fb873ce027af14b2bfa26db Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 09:47:37 +0200 Subject: [PATCH 034/116] Revert "move some macros" This reverts commit 20b432843cf1471c8d1d28bd98a6e785c444d790. --- addons/jr/config.cpp | 9 +++++++++ addons/jr/script_component.hpp | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/jr/config.cpp b/addons/jr/config.cpp index 1583a3436..71de78cfb 100644 --- a/addons/jr/config.cpp +++ b/addons/jr/config.cpp @@ -1,5 +1,14 @@ #include "script_component.hpp" +#define private 0 // hidden +#define protected 1 // hidden but usable +#define public 2 // visible + +#define ReadAndWrite 0 //! any modifications enabled +#define ReadAndCreate 1 //! only adding new class members is allowed +#define ReadOnly 2 //! no modifications enabled +#define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied + class CfgPatches { class ADDON { author = "$STR_CBA_Author"; diff --git a/addons/jr/script_component.hpp b/addons/jr/script_component.hpp index 7fad0270a..8ef4ee5b8 100644 --- a/addons/jr/script_component.hpp +++ b/addons/jr/script_component.hpp @@ -1,12 +1,3 @@ #define COMPONENT jr #include "\x\cba\addons\main\script_mod.hpp" #include "\x\cba\addons\main\script_macros.hpp" - -#define private 0 // hidden -#define protected 1 // hidden but usable -#define public 2 // visible - -#define ReadAndWrite 0 //! any modifications enabled -#define ReadAndCreate 1 //! only adding new class members is allowed -#define ReadOnly 2 //! no modifications enabled -#define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied From e0d56065fec8d4ed7c78e34a33391d1878972666 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 16:35:28 +0200 Subject: [PATCH 035/116] don't overwrite vanilla magazine base classes --- addons/jr/CfgWeapons.hpp | 49 -------------------------------- addons/jr/jr_prep/CfgWeapons.hpp | 37 ------------------------ 2 files changed, 86 deletions(-) diff --git a/addons/jr/CfgWeapons.hpp b/addons/jr/CfgWeapons.hpp index 3364e4317..f39c10b3c 100644 --- a/addons/jr/CfgWeapons.hpp +++ b/addons/jr/CfgWeapons.hpp @@ -40,10 +40,6 @@ class CfgWeapons { class srifle_EBR_F: EBR_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762 { - iconPosition[] = {0.05,0.38}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.5,0.3}; iconScale = 0.2; @@ -87,10 +83,6 @@ class CfgWeapons { class srifle_DMR_01_F: DMR_01_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.45,0.38}; iconScale = 0.2; @@ -137,10 +129,6 @@ class CfgWeapons { class srifle_DMR_03_F: DMR_03_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762 { - iconPosition[] = {0.12,0.431}; - iconScale = 0.15; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.5,0.36}; iconScale = 0.15; @@ -208,10 +196,6 @@ class CfgWeapons { class srifle_DMR_06_camo_F: DMR_06_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762 { - iconPosition[] = {0.06,0.4}; - iconScale = 0.15; - }; class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.52,0.36}; iconScale = 0.15; @@ -225,15 +209,6 @@ class CfgWeapons { class LMG_Mk200_F: Rifle_Long_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762MG { - iconPosition[] = {0.1,0.5}; - iconScale = 0.2; - class compatibleItems: compatibleItems { - muzzle_snds_h = 1; - muzzle_snds_h_khk_F = 1; - muzzle_snds_h_snd_F = 1; - }; - }; class CowsSlot: asdg_OpticRail1913_short_MG { iconPosition[] = {0.6,0.45}; iconScale = 0.2; @@ -323,10 +298,6 @@ class CfgWeapons { class arifle_Katiba_F: arifle_Katiba_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.45,0.28}; iconScale = 0.2; @@ -340,10 +311,6 @@ class CfgWeapons { class arifle_Katiba_C_F: arifle_Katiba_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0.1,0.45}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.45,0.28}; iconScale = 0.2; @@ -357,10 +324,6 @@ class CfgWeapons { class arifle_Katiba_GL_F: arifle_Katiba_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.45,0.28}; iconScale = 0.2; @@ -378,10 +341,6 @@ class CfgWeapons { class arifle_Mk20_F: mk20_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0,0.36}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913 { iconPosition[] = {0.45,0.25}; iconScale = 0.2; @@ -395,10 +354,6 @@ class CfgWeapons { class arifle_Mk20C_F: mk20_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0.1,0.36}; - iconScale = 0.2; - }; class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.35,0.35}; iconScale = 0.25; @@ -412,10 +367,6 @@ class CfgWeapons { class arifle_Mk20_GL_F: mk20_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0.1,0.36}; - iconScale = 0.2; - }; class PointerSlot: asdg_FrontSideRail { iconPosition[] = {0.35,0.35}; iconScale = 0.25; diff --git a/addons/jr/jr_prep/CfgWeapons.hpp b/addons/jr/jr_prep/CfgWeapons.hpp index 2dbe386b5..16d3ea9d1 100644 --- a/addons/jr/jr_prep/CfgWeapons.hpp +++ b/addons/jr/jr_prep/CfgWeapons.hpp @@ -64,7 +64,6 @@ class CfgWeapons { class LMG_Mk200_F: Rifle_Long_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - delete MuzzleSlot; delete CowsSlot; delete PointerSlot; delete UnderBarrelSlot; @@ -89,42 +88,6 @@ class CfgWeapons { }; }; - class arifle_Katiba_Base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class arifle_Katiba_C_F: arifle_Katiba_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - delete MuzzleSlot; - }; - }; - - class mk20_base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class arifle_Mk20C_F: mk20_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - delete MuzzleSlot; - }; - }; - - class arifle_Mk20_GL_F: mk20_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - delete MuzzleSlot; - }; - }; - - class Tavor_base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class arifle_TRG20_F: Tavor_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - delete MuzzleSlot; - }; - }; - class LMG_03_base_F: Rifle_Long_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; From 6ee185fc981464ee02dc9a1745472acfbb539772 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 17:09:05 +0200 Subject: [PATCH 036/116] don't overwrite vanilla magazine base classes --- addons/jr/CfgWeapons.hpp | 66 ++++++++++++++++++++++++-------- addons/jr/jr_prep/CfgWeapons.hpp | 13 ++++++- 2 files changed, 60 insertions(+), 19 deletions(-) diff --git a/addons/jr/CfgWeapons.hpp b/addons/jr/CfgWeapons.hpp index f39c10b3c..67780e479 100644 --- a/addons/jr/CfgWeapons.hpp +++ b/addons/jr/CfgWeapons.hpp @@ -445,10 +445,6 @@ class CfgWeapons { class arifle_TRG21_F: Tavor_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.45,0.28}; iconScale = 0.2; @@ -462,10 +458,6 @@ class CfgWeapons { class arifle_TRG20_F: Tavor_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0.1,0.4}; - iconScale = 0.2; - }; class CowsSlot: asdg_OpticRail1913_short { iconPosition[] = {0.45,0.28}; iconScale = 0.2; @@ -592,18 +584,58 @@ class CfgWeapons { }; */ class arifle_AK12_base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_AK12_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.35}; + iconScale = 0.2; + }; + }; + }; + + class arifle_AK12_lush_F: arifle_AK12_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762R { - iconPosition[] = {0,0.35}; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.35}; iconScale = 0.2; - class compatibleItems: compatibleItems { - muzzle_snds_B = 1; - muzzle_snds_B_khk_F = 1; - muzzle_snds_B_snd_F = 1; - }; }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.25}; + }; + }; + + class arifle_AK12_arid_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.35}; + iconScale = 0.2; + }; + }; + }; + + class arifle_AK12_GL_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.35}; + iconScale = 0.2; + }; + }; + }; + + class arifle_AK12U_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.35}; + iconScale = 0.2; + }; + }; + }; + + class arifle_RPK12_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.35}; iconScale = 0.2; }; }; diff --git a/addons/jr/jr_prep/CfgWeapons.hpp b/addons/jr/jr_prep/CfgWeapons.hpp index 16d3ea9d1..c8fc05d3f 100644 --- a/addons/jr/jr_prep/CfgWeapons.hpp +++ b/addons/jr/jr_prep/CfgWeapons.hpp @@ -123,9 +123,18 @@ class CfgWeapons { }; */ class arifle_AK12_base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_AK12U_base_F: arifle_AK12_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - delete MuzzleSlot; - delete CowsSlot; + delete PointerSlot; + }; + }; + + class arifle_RPK12_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete PointerSlot; }; }; From 3227dbb0dc166de266dc19414f22a50efbbcf010 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 26 Jul 2019 21:59:16 +0200 Subject: [PATCH 037/116] implement addWeaponWithAttachmentsCargoGlobal command (#1188) * implement addWeaponWithAttachmentsCargoGlobal command * use AWWACG in removeXCargo functions * fix test --- addons/common/fnc_removeBackpackCargo.sqf | 46 +++++------------------ addons/common/fnc_removeItemCargo.sqf | 46 +++++------------------ addons/common/fnc_removeWeaponCargo.sqf | 40 +++++--------------- addons/common/test_inventory.sqf | 2 +- addons/disposable/fnc_firedDisposable.sqf | 35 +++++------------ 5 files changed, 38 insertions(+), 131 deletions(-) diff --git a/addons/common/fnc_removeBackpackCargo.sqf b/addons/common/fnc_removeBackpackCargo.sqf index e06aa6d7e..666ff1039 100644 --- a/addons/common/fnc_removeBackpackCargo.sqf +++ b/addons/common/fnc_removeBackpackCargo.sqf @@ -94,45 +94,17 @@ private _fnc_addContents = { // weaponsItems magazineGL does not exist if not loaded (not even as empty array) if (count _x < 7) then { _bipod = _magazineGL; - _magazineGL = ""; + _magazineGL = []; }; - // Some weapons don't have non-preset parents - private _weaponNonPreset = [_weapon] call CBA_fnc_getNonPresetClass; - if (_weaponNonPreset == "") then { - _weaponNonPreset = _weapon; - }; - - _container addWeaponCargoGlobal [_weaponNonPreset, 1]; - - // If weapon does not have a non-preset parent, only add attachments that were custom added - // Removed attachments cannot be handled (engine limitation) and will be readded due to having to readd preset weapon - private _presetAttachments = []; - if (_weaponNonPreset == _weapon) then { - _presetAttachments = _weapon call CBA_fnc_weaponComponents; - }; - if !(toLower _muzzle in _presetAttachments) then { - _container addItemCargoGlobal [_muzzle, 1]; - }; - if !(toLower _pointer in _presetAttachments) then { - _container addItemCargoGlobal [_pointer, 1]; - }; - if !(toLower _optic in _presetAttachments) then { - _container addItemCargoGlobal [_optic, 1]; - }; - if !(toLower _bipod in _presetAttachments) then { - _container addItemCargoGlobal [_bipod, 1]; - }; - - _magazine params [["_magazineClass", ""], ["_magazineAmmoCount", 0]]; - if (_magazineClass != "") then { - _container addMagazineAmmoCargo [_magazineClass, 1, _magazineAmmoCount]; - }; - - _magazineGL params [["_magazineGLClass", ""], ["_magazineGLAmmoCount", 0]]; - if (_magazineGLClass != "") then { - _container addMagazineAmmoCargo [_magazineGLClass, 1, _magazineGLAmmoCount]; - }; + _container addWeaponWithAttachmentsCargoGlobal [ + [ + _weapon, + _muzzle, _pointer, _optic, + _magazine, _magazineGL, + _bipod + ], 1 + ]; } forEach _weaponsItemsCargo; }; diff --git a/addons/common/fnc_removeItemCargo.sqf b/addons/common/fnc_removeItemCargo.sqf index c9d0827bd..e79eadb11 100644 --- a/addons/common/fnc_removeItemCargo.sqf +++ b/addons/common/fnc_removeItemCargo.sqf @@ -111,45 +111,17 @@ private _fnc_addContents = { // weaponsItems magazineGL does not exist if not loaded (not even as empty array) if (count _x < 7) then { _bipod = _magazineGL; - _magazineGL = ""; + _magazineGL = []; }; - // Some weapons don't have non-preset parents - private _weaponNonPreset = [_weapon] call CBA_fnc_getNonPresetClass; - if (_weaponNonPreset == "") then { - _weaponNonPreset = _weapon; - }; - - _container addWeaponCargoGlobal [_weaponNonPreset, 1]; - - // If weapon does not have a non-preset parent, only add attachments that were custom added - // Removed attachments cannot be handled (engine limitation) and will be readded due to having to readd preset weapon - private _presetAttachments = []; - if (_weaponNonPreset == _weapon) then { - _presetAttachments = _weapon call CBA_fnc_weaponComponents; - }; - if !(toLower _muzzle in _presetAttachments) then { - _container addItemCargoGlobal [_muzzle, 1]; - }; - if !(toLower _pointer in _presetAttachments) then { - _container addItemCargoGlobal [_pointer, 1]; - }; - if !(toLower _optic in _presetAttachments) then { - _container addItemCargoGlobal [_optic, 1]; - }; - if !(toLower _bipod in _presetAttachments) then { - _container addItemCargoGlobal [_bipod, 1]; - }; - - _magazine params [["_magazineClass", ""], ["_magazineAmmoCount", 0]]; - if (_magazineClass != "") then { - _container addMagazineAmmoCargo [_magazineClass, 1, _magazineAmmoCount]; - }; - - _magazineGL params [["_magazineGLClass", ""], ["_magazineGLAmmoCount", 0]]; - if (_magazineGLClass != "") then { - _container addMagazineAmmoCargo [_magazineGLClass, 1, _magazineGLAmmoCount]; - }; + _container addWeaponWithAttachmentsCargoGlobal [ + [ + _weapon, + _muzzle, _pointer, _optic, + _magazine, _magazineGL, + _bipod + ], 1 + ]; } forEach _weaponsItemsCargo; }; diff --git a/addons/common/fnc_removeWeaponCargo.sqf b/addons/common/fnc_removeWeaponCargo.sqf index 7af49f297..e03c54711 100644 --- a/addons/common/fnc_removeWeaponCargo.sqf +++ b/addons/common/fnc_removeWeaponCargo.sqf @@ -73,7 +73,7 @@ clearWeaponCargoGlobal _container; // weaponsItems magazineGL does not exist if not loaded (not even as empty array) if (count _x < 7) then { _bipod = _magazineGL; - _magazineGL = ""; + _magazineGL = []; }; // Some weapons don't have non-preset parents @@ -103,36 +103,14 @@ clearWeaponCargoGlobal _container; }; }; } else { - _container addWeaponCargoGlobal [_weaponNonPreset, 1]; - - // If weapon does not have a non-preset parent, only add attachments that were custom added - // Removed attachments cannot be handled (engine limitation) and will be readded due to having to readd preset weapon - private _presetAttachments = []; - if (_weaponNonPreset == _weapon) then { - _presetAttachments = _weapon call CBA_fnc_weaponComponents; - }; - if !(toLower _muzzle in _presetAttachments) then { - _container addItemCargoGlobal [_muzzle, 1]; - }; - if !(toLower _pointer in _presetAttachments) then { - _container addItemCargoGlobal [_pointer, 1]; - }; - if !(toLower _optic in _presetAttachments) then { - _container addItemCargoGlobal [_optic, 1]; - }; - if !(toLower _bipod in _presetAttachments) then { - _container addItemCargoGlobal [_bipod, 1]; - }; - - _magazine params [["_magazineClass", ""], ["_magazineAmmoCount", 0]]; - if (_magazineClass != "") then { - _container addMagazineAmmoCargo [_magazineClass, 1, _magazineAmmoCount]; - }; - - _magazineGL params [["_magazineGLClass", ""], ["_magazineGLAmmoCount", 0]]; - if (_magazineGLClass != "") then { - _container addMagazineAmmoCargo [_magazineGLClass, 1, _magazineGLAmmoCount]; - }; + _container addWeaponWithAttachmentsCargoGlobal [ + [ + _weaponNonPreset, + _muzzle, _pointer, _optic, + _magazine, _magazineGL, + _bipod + ], 1 + ]; }; } forEach _weaponsItemsCargo; diff --git a/addons/common/test_inventory.sqf b/addons/common/test_inventory.sqf index e3ff04528..75bbc51c1 100644 --- a/addons/common/test_inventory.sqf +++ b/addons/common/test_inventory.sqf @@ -115,7 +115,7 @@ _container addBackpackCargoGlobal ["B_AssaultPack_mcamo", 1]; ((everyBackpack _container) select 0) addWeaponCargoGlobal ["arifle_MX_ACO_pointer_F", 1]; _result = [_container, "B_AssaultPack_mcamo", 1, true] call CBA_fnc_removeBackpackCargo; TEST_TRUE(_result,_funcName); -TEST_TRUE(count (backpackCargo _container) == 0 && count (weaponCargo _container) == 1 && count (itemCargo _container) == 2,_funcName); +TEST_TRUE(count (backpackCargo _container) == 0 && count (weaponCargo _container) == 1 && count (itemCargo _container) == 0,_funcName); clearBackpackCargoGlobal _container; clearWeaponCargoGlobal _container; clearItemCargoGlobal _container; diff --git a/addons/disposable/fnc_firedDisposable.sqf b/addons/disposable/fnc_firedDisposable.sqf index 9e0cf2f44..f612358dc 100644 --- a/addons/disposable/fnc_firedDisposable.sqf +++ b/addons/disposable/fnc_firedDisposable.sqf @@ -79,42 +79,27 @@ if (isNil "_usedLauncher") exitWith {}; }) exitWith { if (GVAR(dropUsedLauncher) isEqualTo 1 && {_unit == call CBA_fnc_currentUnit}) exitWith {true}; - private _launcherItems = secondaryWeaponItems _unit; - private _launcherMagazines = WEAPON_MAGAZINES(_unit,secondaryWeapon _unit); + secondaryWeaponItems _unit params ["_silencer", "_pointer", "_optic", "_bipod"]; + WEAPON_MAGAZINES(_unit,secondaryWeapon _unit) params [["_magazineAmmo1", []], ["_magazineAmmo2", []]]; _unit removeWeapon _usedLauncher; private _dir = getDir _unit - 180; private _container = createVehicle ["WeaponHolderSimulated", [0,0,0], [], 0, "CAN_COLLIDE"]; - _container addWeaponCargoGlobal [_usedLauncher, 1]; + _container addWeaponWithAttachmentsCargoGlobal [ + [ + _usedLauncher, + _silencer, _pointer, _optic, + _magazineAmmo1, _magazineAmmo2, + _bipod + ], 1 + ]; _container setDir (_dir + 90); _container setPosASL AGLToASL (_unit modelToWorld (_unit selectionPosition "rightshoulder" vectorAdd [0, 0.2, 0.1])); _container setVelocity (velocity _unit vectorAdd ([sin _dir, cos _dir, 0] vectorMultiply 1.5)); - /* - _container addWeaponWithAttachmentsCargoGlobal [ - _usedLauncher, - _silencer, _pointer, _optic, _bipod, [ - _magazine1, _ammo1, - _magazine2, _ammo2 - ], - 1]; - */ - - { - _container addItemCargoGlobal [_x, 1]; - } forEach _launcherItems; - - { - _x params ["_magazine", "_ammo"]; - - if (_ammo > 0) then { - _container addMagazineAmmoCargo [_x, 1, _ammo]; - }; - } forEach _launcherMagazines; - true // quit }; From b6df6ac7af9fd86bb968823ec22dabe703450057 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 27 Jul 2019 09:04:03 +0200 Subject: [PATCH 038/116] fix minor ui issues with Contact DLC ui modifications (#1186) * fix minor ui issues with Contact DLC ui modifications * fix another minor ui issue with Contact DLC ui modifications --- addons/settings/fnc_gui_sourceChanged.sqf | 2 +- addons/ui/fnc_initDisplayInterrupt.sqf | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/settings/fnc_gui_sourceChanged.sqf b/addons/settings/fnc_gui_sourceChanged.sqf index 7023c32ea..26370c49f 100644 --- a/addons/settings/fnc_gui_sourceChanged.sqf +++ b/addons/settings/fnc_gui_sourceChanged.sqf @@ -26,7 +26,7 @@ private _selectedAddon = uiNamespace getVariable QGVAR(addon); // toggle source buttons { private _ctrlX = _display displayCtrl _x; - _ctrlX ctrlSetTextColor ([COLOR_BUTTON_ENABLED, COLOR_BUTTON_DISABLED] select (_control == _ctrlX)); + _ctrlX ctrlSetTextColor ([COLOR_BUTTON_ENABLED, COLOR_BUTTON_DISABLED] select (_control == _ctrlX && {!isClass (configFile >> "CfgPatches" >> "A3_Data_F_Contact")})); _ctrlX ctrlSetBackgroundColor ([COLOR_BUTTON_DISABLED, COLOR_BUTTON_ENABLED] select (_control == _ctrlX)); } forEach [IDC_BTN_SERVER, IDC_BTN_MISSION, IDC_BTN_CLIENT]; diff --git a/addons/ui/fnc_initDisplayInterrupt.sqf b/addons/ui/fnc_initDisplayInterrupt.sqf index d39515f1c..92f3f05d2 100644 --- a/addons/ui/fnc_initDisplayInterrupt.sqf +++ b/addons/ui/fnc_initDisplayInterrupt.sqf @@ -44,11 +44,13 @@ if (!isMultiplayer && {getNumber (missionConfigFile >> "replaceAbortButton") > 0 ]; // --- create custom buttons +private _buttonType = ["RscButtonMenu", "RscButtonMenuLeft"] select isClass (configFile >> "CfgPatches" >> "A3_Data_F_Contact"); + { _offset = _offset + 1.1; _x params ["_displayName", "_tooltip", "_dialog"]; - private _button = _display ctrlCreate ["RscButtonMenu", -1]; + private _button = _display ctrlCreate [_buttonType, -1]; _button ctrlSetText toUpper _displayName; _button ctrlSetTooltip _tooltip; From 432f21488d191486df59963db1f443b18848f64d Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 27 Jul 2019 12:54:12 +0200 Subject: [PATCH 039/116] add legacy JR component --- addons/jr/config.cpp | 2 +- addons/legacy_jr/$PBOPREFIX$ | 1 + addons/legacy_jr/CfgWeapons.hpp | 1091 +++++++++++++++++ addons/legacy_jr/config.cpp | 16 + .../legacy_jr/legacy_jr_prep/CfgWeapons.hpp | 173 +++ addons/legacy_jr/legacy_jr_prep/config.cpp | 16 + .../legacy_jr_prep/script_component.hpp | 3 + addons/legacy_jr/script_component.hpp | 3 + addons/legacy_jr/stringtable.xml | 9 + 9 files changed, 1313 insertions(+), 1 deletion(-) create mode 100644 addons/legacy_jr/$PBOPREFIX$ create mode 100644 addons/legacy_jr/CfgWeapons.hpp create mode 100644 addons/legacy_jr/config.cpp create mode 100644 addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp create mode 100644 addons/legacy_jr/legacy_jr_prep/config.cpp create mode 100644 addons/legacy_jr/legacy_jr_prep/script_component.hpp create mode 100644 addons/legacy_jr/script_component.hpp create mode 100644 addons/legacy_jr/stringtable.xml diff --git a/addons/jr/config.cpp b/addons/jr/config.cpp index 71de78cfb..967a0635b 100644 --- a/addons/jr/config.cpp +++ b/addons/jr/config.cpp @@ -24,5 +24,5 @@ class CfgPatches { }; #include "jr_classes.hpp" -#include "cfgweapons.hpp" +#include "CfgWeapons.hpp" #include "CfgFunctions.hpp" diff --git a/addons/legacy_jr/$PBOPREFIX$ b/addons/legacy_jr/$PBOPREFIX$ new file mode 100644 index 000000000..6ab615799 --- /dev/null +++ b/addons/legacy_jr/$PBOPREFIX$ @@ -0,0 +1 @@ +x\cba\addons\legacy_jr diff --git a/addons/legacy_jr/CfgWeapons.hpp b/addons/legacy_jr/CfgWeapons.hpp new file mode 100644 index 000000000..ff2fde4b6 --- /dev/null +++ b/addons/legacy_jr/CfgWeapons.hpp @@ -0,0 +1,1091 @@ +class asdg_MuzzleSlot; +class asdg_MuzzleSlot_762R: asdg_MuzzleSlot { + class compatibleItems {}; +}; + +class asdg_OpticRail1913; +class asdg_UnderSlot; + +class CfgWeapons { + class Rifle; + class Rifle_Base_F: Rifle { + class WeaponSlotsInfo; + }; + class Rifle_Long_Base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_AK12_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762R { + iconPosition[] = {0,0.35}; + iconScale = 0.2; + + class compatibleItems: compatibleItems { + muzzle_snds_B = 1; + muzzle_snds_B_khk_F = 1; + muzzle_snds_B_snd_F = 1; + muzzle_snds_B_arid_F = 1; + muzzle_snds_B_lush_F = 1; + }; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.25}; + iconScale = 0.2; + }; + //class UnderBarrelSlot: asdg_UnderSlot { + // iconPosition[] = {0.35,0.7}; + // iconScale = 0.3; + //}; + }; + }; + class arifle_AK12_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.35,0.7}; + iconScale = 0.3; + }; + }; + }; + class arifle_AK12_lush_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.35,0.7}; + iconScale = 0.3; + }; + }; + }; + class arifle_AK12_arid_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.35,0.7}; + iconScale = 0.3; + }; + }; + }; + + class arifle_AK12U_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: CowsSlot { + iconPosition[] = {0.4,0.25}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.24,0.7}; + iconScale = 0.3; + }; + }; + }; + class arifle_RPK12_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: CowsSlot { + iconPosition[] = {0.57,0.31}; + iconScale = 0.17; + }; + }; + }; +}; + + + + +/*class CfgWeapons { + class Rifle; + class Rifle_Base_F: Rifle { + class WeaponSlotsInfo; + }; + + class Rifle_Short_Base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class Rifle_Long_Base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class Launcher; + class Launcher_Base_F: Launcher { + class WeaponSlotsInfo; + }; + + class launch_Titan_base: Launcher_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.2,0.45}; + iconScale = 0.25; + }; + }; + }; + class launch_MRAWS_base_F: Launcher_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.15, 0.5}; + iconScale = 0.25; + }; + }; + }; + + class EBR_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class srifle_EBR_F: EBR_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762 { + iconPosition[] = {0.05,0.38}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.3}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.4}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.3,0.65}; + iconScale = 0.2; + }; + }; + }; + + class GM6_base_F: Rifle_Long_Base_F {}; + + class srifle_GM6_F: GM6_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.55,0.3}; + iconScale = 0.2; + }; + }; + }; + + class LRR_base_F: Rifle_Long_Base_F {}; + + class srifle_LRR_F: LRR_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.6,0.35}; + iconScale = 0.2; + }; + }; + }; + + class DMR_01_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class srifle_DMR_01_F: DMR_01_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.38}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.5}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.4,0.7}; + iconScale = 0.2; + }; + }; + }; + + class DMR_02_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class srifle_DMR_02_F: DMR_02_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_338 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_long { + iconPosition[] = {0.5,0.36}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.22,0.42}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + + class DMR_03_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class srifle_DMR_03_F: DMR_03_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762 { + iconPosition[] = {0.12,0.431}; + iconScale = 0.15; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.36}; + iconScale = 0.15; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.33,0.4}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.3,0.8}; + iconScale = 0.3; + }; + }; + }; + + class DMR_04_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class srifle_DMR_04_F: DMR_04_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.52,0.38}; + iconScale = 0.15; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.43}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.3,0.7}; + iconScale = 0.2; + }; + }; + }; + + class DMR_05_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class srifle_DMR_05_blk_F: DMR_05_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_93x64 { + iconPosition[] = {0,0.43}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_long { + iconPosition[] = {0.5,0.38}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.22,0.43}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + + class DMR_06_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class srifle_DMR_06_camo_F: DMR_06_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762 { + iconPosition[] = {0.06,0.4}; + iconScale = 0.15; + }; + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.52,0.36}; + iconScale = 0.15; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.32,0.8}; + iconScale = 0.3; + }; + }; + }; + + class LMG_Mk200_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762MG { + iconPosition[] = {0.1,0.5}; + iconScale = 0.2; + class compatibleItems: compatibleItems { + muzzle_snds_h = 1; + muzzle_snds_h_khk_F = 1; + muzzle_snds_h_snd_F = 1; + }; + }; + class CowsSlot: asdg_OpticRail1913_short_MG { + iconPosition[] = {0.6,0.45}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.5}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.35,0.8}; + iconScale = 0.2; + }; + }; + }; + + class LMG_Zafir_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { +/* class MuzzleSlot: asdg_MuzzleSlot_762MG { // this would work but there is no sound config for a suppressed variant + iconPosition[] = {0.05,0.4}; + iconScale = 0.2; + }; +*//* + class CowsSlot: asdg_OpticRail1913_short_MG { + iconPosition[] = {0.6,0.35}; + iconScale = 0.15; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.4,0.4}; + iconScale = 0.15; + }; + }; + }; + + class MMG_01_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class MMG_01_hex_F: MMG_01_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_93x64 { + iconPosition[] = {0.06,0.4}; + iconScale = 0.15; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.57,0.28}; + iconScale = 0.15; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.38,0.42}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.35,0.85}; + iconScale = 0.3; + }; + }; + }; + + class MMG_02_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo; + }; + + class MMG_02_camo_F: MMG_02_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_338 { + iconPosition[] = {0.06,0.42}; + iconScale = 0.15; + }; + class CowsSlot: asdg_OpticRail1913_short_MG { + iconPosition[] = {0.62,0.32}; + iconScale = 0.15; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.38,0.42}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.35,0.85}; + iconScale = 0.3; + }; + }; + }; + + class arifle_Katiba_Base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_Katiba_F: arifle_Katiba_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + }; + }; + + class arifle_Katiba_C_F: arifle_Katiba_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0.1,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + }; + }; + + class arifle_Katiba_GL_F: arifle_Katiba_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + }; + }; + + class mk20_base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_Mk20_F: mk20_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0,0.36}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.25}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.35}; + iconScale = 0.25; + }; + }; + }; + + class arifle_Mk20C_F: mk20_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0.1,0.36}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.35}; + iconScale = 0.25; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.25}; + iconScale = 0.2; + }; + }; + }; + + class arifle_Mk20_GL_F: mk20_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0.1,0.36}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.35}; + iconScale = 0.25; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.25}; + iconScale = 0.2; + }; + }; + }; + + class arifle_MX_Base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_MXC_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.3}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.2,0.4}; + iconScale = 0.25; + }; + }; + }; + + class arifle_MX_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.35}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.2,0.45}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.7}; + iconScale = 0.2; + }; + }; + }; + + class arifle_MX_GL_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.35}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.2,0.45}; + iconScale = 0.25; + }; + }; + }; + + class arifle_MX_SW_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.35}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.2,0.45}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.7}; + iconScale = 0.2; + }; + }; + }; + + class arifle_MXM_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.35}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.2,0.45}; + iconScale = 0.25; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.7}; + iconScale = 0.2; + }; + }; + }; + + class Tavor_base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_TRG21_F: Tavor_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.25,0.4}; + iconScale = 0.25; + }; + }; + }; + + class arifle_TRG20_F: Tavor_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0.1,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.25,0.4}; + iconScale = 0.25; + }; + }; + }; + + class SMG_01_Base: Rifle_Short_Base_F { + class WeaponSlotsInfo; + }; + + class SMG_01_F: SMG_01_Base { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_45ACP_SMG { + iconPosition[] = {0.1,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.4,0.3}; + iconScale = 0.2; + }; + }; + }; + + class SMG_02_base_F: Rifle_Short_Base_F { + class WeaponSlotsInfo; + }; + + class SMG_02_F: SMG_02_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_9MM_SMG { + iconPosition[] = {0.08,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.27}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.28,0.4}; + iconScale = 0.25; + }; + }; + }; + + class pdw2000_base_F: Rifle_Short_Base_F { + class WeaponSlotsInfo; + }; + + class hgun_PDW2000_F: pdw2000_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_9MM_SMG { + iconPosition[] = {0.1,0.41}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.4,0.32}; + iconScale = 0.15; + }; + }; + }; + + class LMG_03_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762MG { + class compatibleItems: compatibleItems { + muzzle_snds_M = 1; + muzzle_snds_m_khk_F = 1; + muzzle_snds_m_snd_F = 1; + }; + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_short_MG { + iconPosition[] = {0.57,0.28}; + iconScale = 0.15; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.38,0.42}; + iconScale = 0.2; + }; + }; + }; + + class DMR_07_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + }; + }; + + class SMG_05_base_F: Rifle_Short_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_9MM_SMG { + iconPosition[] = {0.05,0.35}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.25,0.35}; + iconScale = 0.25; + }; + }; + }; +/* + class arifle_AKS_base_F: Rifle_Base_F { + class WeaponSlotsInfo { + class CowsSlot: asdg_OpticSideMount {}; + class MuzzleSlot: asdg_MuzzleSlot_545R {}; + }; + }; +*//* + class arifle_AK12_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762R { + iconPosition[] = {0,0.35}; + iconScale = 0.2; + class compatibleItems: compatibleItems { + muzzle_snds_B = 1; + muzzle_snds_B_khk_F = 1; + muzzle_snds_B_snd_F = 1; + }; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.5,0.25}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.3,0.35}; + iconScale = 0.2; + }; + }; + }; + + class arifle_AK12_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.35,0.7}; + iconScale = 0.3; + }; + }; + }; + + class arifle_SPAR_01_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + }; + }; + + class arifle_SPAR_01_blk_F: arifle_SPAR_01_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + class arifle_SPAR_01_khk_F: arifle_SPAR_01_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + class arifle_SPAR_01_snd_F: arifle_SPAR_01_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + + class arifle_SPAR_02_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + + class arifle_SPAR_03_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_762 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913_long { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + + class arifle_CTAR_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_58 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + }; + }; + + class arifle_CTARS_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_58 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + }; + }; + + class arifle_ARX_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.4}; + iconScale = 0.2; + }; + class CowsSlot: asdg_OpticRail1913 { + iconPosition[] = {0.45,0.28}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.35,0.45}; + iconScale = 0.2; + }; + class UnderBarrelSlot: asdg_UnderSlot { + iconPosition[] = {0.2,0.8}; + iconScale = 0.3; + }; + }; + }; + + class Pistol; + class Pistol_Base_F: Pistol { + class WeaponSlotsInfo; + }; + + class hgun_ACPC2_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_45ACP { + iconPosition[] = {0.25,0.4}; + iconScale = 0.2; + }; + class PointerSlot: asdg_PistolUnderRail { + iconPosition[] = {0.48,0.54}; + iconScale = 0.25; + }; + }; + }; + + class hgun_P07_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_9MM { + iconPosition[] = {0.24,0.35}; + iconScale = 0.2; + }; + }; + }; + + class hgun_Pistol_heavy_01_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_PistolOpticMount { + iconPosition[] = {0.6,0.27}; + iconScale = 0.15; + }; + class MuzzleSlot: asdg_MuzzleSlot_45ACP { + iconPosition[] = {0.24,0.35}; + iconScale = 0.2; + }; + class PointerSlot: asdg_PistolUnderRail { + iconPosition[] = {0.47,0.55}; + iconScale = 0.3; + }; + }; + }; + + class hgun_Pistol_heavy_02_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_PistolOpticRail1913 { + iconPosition[] = {0.4,0.3}; + iconScale = 0.15; + }; + class PointerSlot: asdg_PistolUnderRail { + iconPosition[] = {0.35,0.6}; + iconScale = 0.3; + }; + }; + }; + + class hgun_Rook40_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_9MM { + iconPosition[] = {0.3,0.38}; + iconScale = 0.2; + }; + }; + }; + + class muzzle_snds_H; + class muzzle_snds_H_MG: muzzle_snds_H { // we were seriously lacking a MG suppressor since BI hid these (1.64) + scope = 2; + displayName = "$STR_CBA_JR_cfgweapons_muzzle_snds_h_mg"; // 7.62 MG, can also be used on 6.5 and 5.56 MGs + model = "\a3\weapons_f\acc\acca_snds_338_tan_F"; + }; + class muzzle_snds_H_MG_blk_F: muzzle_snds_H_MG { + displayName = "$STR_CBA_JR_cfgweapons_muzzle_snds_h_mg"; // 7.62 MG, can also be used on 6.5 and 5.56 MGs + model = "\a3\weapons_f\acc\acca_snds_338_black_F"; + }; + class muzzle_snds_H_MG_khk_F: muzzle_snds_H_MG { + displayName = "$STR_CBA_JR_cfgweapons_muzzle_snds_h_mg"; // 7.62 MG, can also be used on 6.5 and 5.56 MGs + model = "\a3\weapons_f\acc\acca_snds_338_green_F"; + }; + + class SMG_03_TR_BASE: Rifle_Base_F { + class WeaponSlotsInfo; + }; + class SMG_03C_BASE: SMG_03_TR_BASE {}; + class SMG_03_TR_black: SMG_03_TR_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.4, 0.3}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.33, 0.37}; + iconScale = 0.25; + }; + }; + }; + class SMG_03_TR_hex: SMG_03_TR_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.4, 0.3}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.33, 0.37}; + iconScale = 0.25; + }; + }; + }; + class SMG_03C_TR_black: SMG_03C_BASE { + class WeaponSlotsInfo: WeaponSlotsInfo { + class CowsSlot: asdg_OpticRail1913_short { + iconPosition[] = {0.4, 0.3}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.33, 0.37}; + iconScale = 0.25; + }; + }; + }; + + // Contact DLC dummies + class acc_flashlight; + class acc_flashlight_broken: acc_flashlight { + scope = 1; // Optional protected class inheriting from a public base class. + }; + + class acc_pointer_IR; + class acc_pointer_IR_broken: acc_pointer_IR { + scope = 1; + }; + + class optic_Aco; + class optic_Aco_broken: optic_Aco { + scope = 1; + }; + + class optic_Hamr; + class optic_Hamr_broken: optic_Hamr { + scope = 1; + }; + + class optic_MRCO; + class optic_MRCO_broken: optic_MRCO { + scope = 1; + }; +}; diff --git a/addons/legacy_jr/config.cpp b/addons/legacy_jr/config.cpp new file mode 100644 index 000000000..dbbcadeca --- /dev/null +++ b/addons/legacy_jr/config.cpp @@ -0,0 +1,16 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + author = "$STR_CBA_Author"; + name = CSTRING(component); + url = "$STR_CBA_URL"; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"cba_legacy_jr_prep"}; + version = VERSION; + }; +}; + +#include "CfgWeapons.hpp" diff --git a/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp b/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp new file mode 100644 index 000000000..0ba0aff2e --- /dev/null +++ b/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp @@ -0,0 +1,173 @@ +class CfgWeapons { + class Rifle; + class Rifle_Base_F: Rifle { + class WeaponSlotsInfo; + }; + class Rifle_Long_Base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + class arifle_MX_Base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete PointerSlot; + }; + }; + class arifle_MXC_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete PointerSlot; + }; + }; + class arifle_MX_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete PointerSlot; + }; + }; + class arifle_MX_GL_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete PointerSlot; + }; + }; + class arifle_MX_SW_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete PointerSlot; + }; + }; + class arifle_MXM_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete PointerSlot; + }; + }; + + class arifle_Katiba_Base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; + + class mk20_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; + + class Tavor_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; + +////////// + class arifle_AK12_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + + // Cannot 'delete' class, because it is inherited by child classes. + //delete UnderBarrelSlot; + }; + }; + class arifle_AK12_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + delete UnderBarrelSlot; + }; + }; + class arifle_AK12_lush_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + delete UnderBarrelSlot; + }; + }; + class arifle_AK12_arid_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + delete UnderBarrelSlot; + }; + }; + + class arifle_AK12_GL_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo {}; + }; + class arifle_AK12_GL_F: arifle_AK12_GL_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + }; + }; + class arifle_AK12_GL_lush_F: arifle_AK12_GL_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + }; + }; + class arifle_AK12_GL_arid_F: arifle_AK12_GL_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + }; + }; + + class arifle_AK12U_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + delete UnderBarrelSlot; + }; + }; + class arifle_RPK12_base_F: arifle_AK12_base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + delete CowsSlot; + }; + }; + +////////// + + + + + + + + + + + class LMG_Mk200_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; + + class DMR_01_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; + + class EBR_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; + + class DMR_03_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; + + class DMR_06_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + delete MuzzleSlot; + }; + }; +}; diff --git a/addons/legacy_jr/legacy_jr_prep/config.cpp b/addons/legacy_jr/legacy_jr_prep/config.cpp new file mode 100644 index 000000000..1f453453e --- /dev/null +++ b/addons/legacy_jr/legacy_jr_prep/config.cpp @@ -0,0 +1,16 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + author = "$STR_CBA_Author"; + name = ECSTRING(legacy_jr,component); + url = "$STR_CBA_URL"; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"cba_jr"}; + version = VERSION; + }; +}; + +#include "CfgWeapons.hpp" diff --git a/addons/legacy_jr/legacy_jr_prep/script_component.hpp b/addons/legacy_jr/legacy_jr_prep/script_component.hpp new file mode 100644 index 000000000..01632962f --- /dev/null +++ b/addons/legacy_jr/legacy_jr_prep/script_component.hpp @@ -0,0 +1,3 @@ +#define COMPONENT legacy_jr_prep +#include "\x\cba\addons\main\script_mod.hpp" +#include "\x\cba\addons\main\script_macros.hpp" diff --git a/addons/legacy_jr/script_component.hpp b/addons/legacy_jr/script_component.hpp new file mode 100644 index 000000000..87ad65124 --- /dev/null +++ b/addons/legacy_jr/script_component.hpp @@ -0,0 +1,3 @@ +#define COMPONENT legacy_jr +#include "\x\cba\addons\main\script_mod.hpp" +#include "\x\cba\addons\main\script_macros.hpp" diff --git a/addons/legacy_jr/stringtable.xml b/addons/legacy_jr/stringtable.xml new file mode 100644 index 000000000..0d5c360ea --- /dev/null +++ b/addons/legacy_jr/stringtable.xml @@ -0,0 +1,9 @@ + + + + + Community Base Addons - Legacy Joint Rails + Community Base Addons - Legacy-Joint Rails + + + From c9473eced5fc5ed83a944a40b80f2b2f0c17928b Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 27 Jul 2019 22:23:48 +0200 Subject: [PATCH 040/116] legacy jr for mx and the rest --- addons/legacy_jr/CfgWeapons.hpp | 1054 ++--------------- .../legacy_jr/legacy_jr_prep/CfgWeapons.hpp | 12 - 2 files changed, 85 insertions(+), 981 deletions(-) diff --git a/addons/legacy_jr/CfgWeapons.hpp b/addons/legacy_jr/CfgWeapons.hpp index ff2fde4b6..8ed5d5ae8 100644 --- a/addons/legacy_jr/CfgWeapons.hpp +++ b/addons/legacy_jr/CfgWeapons.hpp @@ -1,10 +1,18 @@ +class asdg_OpticRail1913; +class asdg_FrontSideRail; +class asdg_UnderSlot; class asdg_MuzzleSlot; -class asdg_MuzzleSlot_762R: asdg_MuzzleSlot { - class compatibleItems {}; +class asdg_MuzzleSlot_65; +class asdg_MuzzleSlot_556; +class asdg_MuzzleSlot_762; + +class asdg_MuzzleSlot_762MG: asdg_MuzzleSlot { + class compatibleItems; }; -class asdg_OpticRail1913; -class asdg_UnderSlot; +class asdg_MuzzleSlot_762R: asdg_MuzzleSlot { + class compatibleItems; +}; class CfgWeapons { class Rifle; @@ -15,6 +23,63 @@ class CfgWeapons { class WeaponSlotsInfo; }; + class arifle_MX_Base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + class PointerSlot: asdg_FrontSideRail { + iconPosition[] = {0.2,0.45}; + iconScale = 0.25; + }; + }; + }; + class arifle_MXC_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: MuzzleSlot { + iconPosition[] = {0,0.4}; + }; + class PointerSlot: PointerSlot { + iconPosition[] = {0.2,0.4}; + }; + }; + }; + class arifle_MXM_F: arifle_MX_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: MuzzleSlot { + iconPosition[] = {0,0.4}; + }; + }; + }; + + class arifle_Katiba_Base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_65 { + iconPosition[] = {0,0.45}; + iconScale = 0.2; + }; + }; + }; + + class mk20_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0,0.36}; + iconScale = 0.2; + }; + }; + }; + + class Tavor_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: asdg_MuzzleSlot_556 { + iconPosition[] = {0.1,0.36}; + iconScale = 0.2; + }; + }; + }; + class arifle_AK12_base_F: Rifle_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { class MuzzleSlot: asdg_MuzzleSlot_762R { @@ -33,6 +98,7 @@ class CfgWeapons { iconPosition[] = {0.5,0.25}; iconScale = 0.2; }; + // Cannot 'delete' class, because it is inherited by child classes. //class UnderBarrelSlot: asdg_UnderSlot { // iconPosition[] = {0.35,0.7}; // iconScale = 0.3; @@ -63,12 +129,10 @@ class CfgWeapons { }; }; }; - class arifle_AK12U_base_F: arifle_AK12_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { class CowsSlot: CowsSlot { iconPosition[] = {0.4,0.25}; - iconScale = 0.2; }; class UnderBarrelSlot: asdg_UnderSlot { iconPosition[] = {0.24,0.7}; @@ -84,1008 +148,60 @@ class CfgWeapons { }; }; }; -}; - - - - -/*class CfgWeapons { - class Rifle; - class Rifle_Base_F: Rifle { - class WeaponSlotsInfo; - }; - - class Rifle_Short_Base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class Rifle_Long_Base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class Launcher; - class Launcher_Base_F: Launcher { - class WeaponSlotsInfo; - }; - - class launch_Titan_base: Launcher_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; - }; - }; - class launch_MRAWS_base_F: Launcher_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.15, 0.5}; - iconScale = 0.25; - }; - }; - }; - - class EBR_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class srifle_EBR_F: EBR_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762 { - iconPosition[] = {0.05,0.38}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.3}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.4}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.3,0.65}; - iconScale = 0.2; - }; - }; - }; - class GM6_base_F: Rifle_Long_Base_F {}; - - class srifle_GM6_F: GM6_base_F { + class LMG_Mk200_F: Rifle_Long_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.55,0.3}; + class MuzzleSlot: asdg_MuzzleSlot_762MG { + iconPosition[] = {0.1,0.5}; iconScale = 0.2; - }; - }; - }; - class LRR_base_F: Rifle_Long_Base_F {}; + class compatibleItems: compatibleItems { + muzzle_snds_h = 1; + muzzle_snds_h_khk_F = 1; + muzzle_snds_h_snd_F = 1; + muzzle_snds_H_SW = 1; + muzzle_snds_H_MG = 1; + muzzle_snds_H_MG_blk_F = 1; + muzzle_snds_H_MG_khk_F = 1; - class srifle_LRR_F: LRR_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.6,0.35}; - iconScale = 0.2; + }; }; }; }; class DMR_01_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class srifle_DMR_01_F: DMR_01_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { class MuzzleSlot: asdg_MuzzleSlot_762 { iconPosition[] = {0,0.45}; iconScale = 0.2; }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.38}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.5}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.4,0.7}; - iconScale = 0.2; - }; }; }; - class DMR_02_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class srifle_DMR_02_F: DMR_02_base_F { + class EBR_base_F: Rifle_Long_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_338 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_long { - iconPosition[] = {0.5,0.36}; + class MuzzleSlot: asdg_MuzzleSlot_762 { + iconPosition[] = {0.05,0.38}; iconScale = 0.2; }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.22,0.42}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; }; }; class DMR_03_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class srifle_DMR_03_F: DMR_03_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { class MuzzleSlot: asdg_MuzzleSlot_762 { iconPosition[] = {0.12,0.431}; iconScale = 0.15; }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.36}; - iconScale = 0.15; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.33,0.4}; - iconScale = 0.2; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.3,0.8}; - iconScale = 0.3; - }; - }; - }; - - class DMR_04_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class srifle_DMR_04_F: DMR_04_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.52,0.38}; - iconScale = 0.15; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.3,0.43}; - iconScale = 0.2; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.3,0.7}; - iconScale = 0.2; - }; - }; - }; - - class DMR_05_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class srifle_DMR_05_blk_F: DMR_05_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_93x64 { - iconPosition[] = {0,0.43}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_long { - iconPosition[] = {0.5,0.38}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.22,0.43}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; }; }; class DMR_06_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class srifle_DMR_06_camo_F: DMR_06_base_F { class WeaponSlotsInfo: WeaponSlotsInfo { class MuzzleSlot: asdg_MuzzleSlot_762 { iconPosition[] = {0.06,0.4}; iconScale = 0.15; }; - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.52,0.36}; - iconScale = 0.15; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.32,0.8}; - iconScale = 0.3; - }; - }; - }; - - class LMG_Mk200_F: Rifle_Long_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762MG { - iconPosition[] = {0.1,0.5}; - iconScale = 0.2; - class compatibleItems: compatibleItems { - muzzle_snds_h = 1; - muzzle_snds_h_khk_F = 1; - muzzle_snds_h_snd_F = 1; - }; - }; - class CowsSlot: asdg_OpticRail1913_short_MG { - iconPosition[] = {0.6,0.45}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.5}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.35,0.8}; - iconScale = 0.2; - }; - }; - }; - - class LMG_Zafir_F: Rifle_Long_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { -/* class MuzzleSlot: asdg_MuzzleSlot_762MG { // this would work but there is no sound config for a suppressed variant - iconPosition[] = {0.05,0.4}; - iconScale = 0.2; - }; -*//* - class CowsSlot: asdg_OpticRail1913_short_MG { - iconPosition[] = {0.6,0.35}; - iconScale = 0.15; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.4,0.4}; - iconScale = 0.15; - }; }; }; - - class MMG_01_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class MMG_01_hex_F: MMG_01_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_93x64 { - iconPosition[] = {0.06,0.4}; - iconScale = 0.15; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.57,0.28}; - iconScale = 0.15; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.38,0.42}; - iconScale = 0.2; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.35,0.85}; - iconScale = 0.3; - }; - }; - }; - - class MMG_02_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo; - }; - - class MMG_02_camo_F: MMG_02_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_338 { - iconPosition[] = {0.06,0.42}; - iconScale = 0.15; - }; - class CowsSlot: asdg_OpticRail1913_short_MG { - iconPosition[] = {0.62,0.32}; - iconScale = 0.15; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.38,0.42}; - iconScale = 0.2; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.35,0.85}; - iconScale = 0.3; - }; - }; - }; - - class arifle_Katiba_Base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class arifle_Katiba_F: arifle_Katiba_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - }; - }; - - class arifle_Katiba_C_F: arifle_Katiba_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0.1,0.45}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - }; - }; - - class arifle_Katiba_GL_F: arifle_Katiba_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - }; - }; - - class mk20_base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class arifle_Mk20_F: mk20_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0,0.36}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.25}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.35}; - iconScale = 0.25; - }; - }; - }; - - class arifle_Mk20C_F: mk20_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0.1,0.36}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.35}; - iconScale = 0.25; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.25}; - iconScale = 0.2; - }; - }; - }; - - class arifle_Mk20_GL_F: mk20_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0.1,0.36}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.35}; - iconScale = 0.25; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.25}; - iconScale = 0.2; - }; - }; - }; - - class arifle_MX_Base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class arifle_MXC_F: arifle_MX_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.3}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.4}; - iconScale = 0.25; - }; - }; - }; - - class arifle_MX_F: arifle_MX_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.35}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.7}; - iconScale = 0.2; - }; - }; - }; - - class arifle_MX_GL_F: arifle_MX_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.35}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; - }; - }; - - class arifle_MX_SW_F: arifle_MX_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.35}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.7}; - iconScale = 0.2; - }; - }; - }; - - class arifle_MXM_F: arifle_MX_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.35}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.2,0.45}; - iconScale = 0.25; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.7}; - iconScale = 0.2; - }; - }; - }; - - class Tavor_base_F: Rifle_Base_F { - class WeaponSlotsInfo; - }; - - class arifle_TRG21_F: Tavor_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.25,0.4}; - iconScale = 0.25; - }; - }; - }; - - class arifle_TRG20_F: Tavor_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0.1,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.25,0.4}; - iconScale = 0.25; - }; - }; - }; - - class SMG_01_Base: Rifle_Short_Base_F { - class WeaponSlotsInfo; - }; - - class SMG_01_F: SMG_01_Base { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_45ACP_SMG { - iconPosition[] = {0.1,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.4,0.3}; - iconScale = 0.2; - }; - }; - }; - - class SMG_02_base_F: Rifle_Short_Base_F { - class WeaponSlotsInfo; - }; - - class SMG_02_F: SMG_02_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_9MM_SMG { - iconPosition[] = {0.08,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.27}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.28,0.4}; - iconScale = 0.25; - }; - }; - }; - - class pdw2000_base_F: Rifle_Short_Base_F { - class WeaponSlotsInfo; - }; - - class hgun_PDW2000_F: pdw2000_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_9MM_SMG { - iconPosition[] = {0.1,0.41}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.4,0.32}; - iconScale = 0.15; - }; - }; - }; - - class LMG_03_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762MG { - class compatibleItems: compatibleItems { - muzzle_snds_M = 1; - muzzle_snds_m_khk_F = 1; - muzzle_snds_m_snd_F = 1; - }; - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_short_MG { - iconPosition[] = {0.57,0.28}; - iconScale = 0.15; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.38,0.42}; - iconScale = 0.2; - }; - }; - }; - - class DMR_07_base_F: Rifle_Long_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.45}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - }; - }; - - class SMG_05_base_F: Rifle_Short_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_9MM_SMG { - iconPosition[] = {0.05,0.35}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.25,0.35}; - iconScale = 0.25; - }; - }; - }; -/* - class arifle_AKS_base_F: Rifle_Base_F { - class WeaponSlotsInfo { - class CowsSlot: asdg_OpticSideMount {}; - class MuzzleSlot: asdg_MuzzleSlot_545R {}; - }; - }; -*//* - class arifle_AK12_base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762R { - iconPosition[] = {0,0.35}; - iconScale = 0.2; - class compatibleItems: compatibleItems { - muzzle_snds_B = 1; - muzzle_snds_B_khk_F = 1; - muzzle_snds_B_snd_F = 1; - }; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.5,0.25}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.3,0.35}; - iconScale = 0.2; - }; - }; - }; - - class arifle_AK12_F: arifle_AK12_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.35,0.7}; - iconScale = 0.3; - }; - }; - }; - - class arifle_SPAR_01_base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - }; - }; - - class arifle_SPAR_01_blk_F: arifle_SPAR_01_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; - }; - }; - class arifle_SPAR_01_khk_F: arifle_SPAR_01_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; - }; - }; - class arifle_SPAR_01_snd_F: arifle_SPAR_01_base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; - }; - }; - - class arifle_SPAR_02_base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_556 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; - }; - }; - - class arifle_SPAR_03_base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_762 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913_long { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; - }; - }; - - class arifle_CTAR_base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_58 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - }; - }; - - class arifle_CTARS_base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_58 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - }; - }; - - class arifle_ARX_base_F: Rifle_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_65 { - iconPosition[] = {0,0.4}; - iconScale = 0.2; - }; - class CowsSlot: asdg_OpticRail1913 { - iconPosition[] = {0.45,0.28}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.35,0.45}; - iconScale = 0.2; - }; - class UnderBarrelSlot: asdg_UnderSlot { - iconPosition[] = {0.2,0.8}; - iconScale = 0.3; - }; - }; - }; - - class Pistol; - class Pistol_Base_F: Pistol { - class WeaponSlotsInfo; - }; - - class hgun_ACPC2_F: Pistol_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_45ACP { - iconPosition[] = {0.25,0.4}; - iconScale = 0.2; - }; - class PointerSlot: asdg_PistolUnderRail { - iconPosition[] = {0.48,0.54}; - iconScale = 0.25; - }; - }; - }; - - class hgun_P07_F: Pistol_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_9MM { - iconPosition[] = {0.24,0.35}; - iconScale = 0.2; - }; - }; - }; - - class hgun_Pistol_heavy_01_F: Pistol_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_PistolOpticMount { - iconPosition[] = {0.6,0.27}; - iconScale = 0.15; - }; - class MuzzleSlot: asdg_MuzzleSlot_45ACP { - iconPosition[] = {0.24,0.35}; - iconScale = 0.2; - }; - class PointerSlot: asdg_PistolUnderRail { - iconPosition[] = {0.47,0.55}; - iconScale = 0.3; - }; - }; - }; - - class hgun_Pistol_heavy_02_F: Pistol_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_PistolOpticRail1913 { - iconPosition[] = {0.4,0.3}; - iconScale = 0.15; - }; - class PointerSlot: asdg_PistolUnderRail { - iconPosition[] = {0.35,0.6}; - iconScale = 0.3; - }; - }; - }; - - class hgun_Rook40_F: Pistol_Base_F { - class WeaponSlotsInfo: WeaponSlotsInfo { - class MuzzleSlot: asdg_MuzzleSlot_9MM { - iconPosition[] = {0.3,0.38}; - iconScale = 0.2; - }; - }; - }; - - class muzzle_snds_H; - class muzzle_snds_H_MG: muzzle_snds_H { // we were seriously lacking a MG suppressor since BI hid these (1.64) - scope = 2; - displayName = "$STR_CBA_JR_cfgweapons_muzzle_snds_h_mg"; // 7.62 MG, can also be used on 6.5 and 5.56 MGs - model = "\a3\weapons_f\acc\acca_snds_338_tan_F"; - }; - class muzzle_snds_H_MG_blk_F: muzzle_snds_H_MG { - displayName = "$STR_CBA_JR_cfgweapons_muzzle_snds_h_mg"; // 7.62 MG, can also be used on 6.5 and 5.56 MGs - model = "\a3\weapons_f\acc\acca_snds_338_black_F"; - }; - class muzzle_snds_H_MG_khk_F: muzzle_snds_H_MG { - displayName = "$STR_CBA_JR_cfgweapons_muzzle_snds_h_mg"; // 7.62 MG, can also be used on 6.5 and 5.56 MGs - model = "\a3\weapons_f\acc\acca_snds_338_green_F"; - }; - - class SMG_03_TR_BASE: Rifle_Base_F { - class WeaponSlotsInfo; - }; - class SMG_03C_BASE: SMG_03_TR_BASE {}; - class SMG_03_TR_black: SMG_03_TR_BASE { - class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.4, 0.3}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.33, 0.37}; - iconScale = 0.25; - }; - }; - }; - class SMG_03_TR_hex: SMG_03_TR_BASE { - class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.4, 0.3}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.33, 0.37}; - iconScale = 0.25; - }; - }; - }; - class SMG_03C_TR_black: SMG_03C_BASE { - class WeaponSlotsInfo: WeaponSlotsInfo { - class CowsSlot: asdg_OpticRail1913_short { - iconPosition[] = {0.4, 0.3}; - iconScale = 0.2; - }; - class PointerSlot: asdg_FrontSideRail { - iconPosition[] = {0.33, 0.37}; - iconScale = 0.25; - }; - }; - }; - - // Contact DLC dummies - class acc_flashlight; - class acc_flashlight_broken: acc_flashlight { - scope = 1; // Optional protected class inheriting from a public base class. - }; - - class acc_pointer_IR; - class acc_pointer_IR_broken: acc_pointer_IR { - scope = 1; - }; - - class optic_Aco; - class optic_Aco_broken: optic_Aco { - scope = 1; - }; - - class optic_Hamr; - class optic_Hamr_broken: optic_Hamr { - scope = 1; - }; - - class optic_MRCO; - class optic_MRCO_broken: optic_MRCO { - scope = 1; - }; }; diff --git a/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp b/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp index 0ba0aff2e..0d066ad69 100644 --- a/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp +++ b/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp @@ -62,7 +62,6 @@ class CfgWeapons { }; }; -////////// class arifle_AK12_base_F: Rifle_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; @@ -130,17 +129,6 @@ class CfgWeapons { }; }; -////////// - - - - - - - - - - class LMG_Mk200_F: Rifle_Long_Base_F { class WeaponSlotsInfo: WeaponSlotsInfo { delete MuzzleSlot; From 37d494399beac9dcf05eceeca0e2b212e5d7ce27 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 27 Jul 2019 22:31:41 +0200 Subject: [PATCH 041/116] move legacy jr to optionals --- {addons => optionals}/legacy_jr/$PBOPREFIX$ | 0 {addons => optionals}/legacy_jr/CfgWeapons.hpp | 0 {addons => optionals}/legacy_jr/config.cpp | 0 {addons => optionals}/legacy_jr/legacy_jr_prep/CfgWeapons.hpp | 0 {addons => optionals}/legacy_jr/legacy_jr_prep/config.cpp | 0 .../legacy_jr/legacy_jr_prep/script_component.hpp | 0 {addons => optionals}/legacy_jr/script_component.hpp | 0 {addons => optionals}/legacy_jr/stringtable.xml | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {addons => optionals}/legacy_jr/$PBOPREFIX$ (100%) rename {addons => optionals}/legacy_jr/CfgWeapons.hpp (100%) rename {addons => optionals}/legacy_jr/config.cpp (100%) rename {addons => optionals}/legacy_jr/legacy_jr_prep/CfgWeapons.hpp (100%) rename {addons => optionals}/legacy_jr/legacy_jr_prep/config.cpp (100%) rename {addons => optionals}/legacy_jr/legacy_jr_prep/script_component.hpp (100%) rename {addons => optionals}/legacy_jr/script_component.hpp (100%) rename {addons => optionals}/legacy_jr/stringtable.xml (100%) diff --git a/addons/legacy_jr/$PBOPREFIX$ b/optionals/legacy_jr/$PBOPREFIX$ similarity index 100% rename from addons/legacy_jr/$PBOPREFIX$ rename to optionals/legacy_jr/$PBOPREFIX$ diff --git a/addons/legacy_jr/CfgWeapons.hpp b/optionals/legacy_jr/CfgWeapons.hpp similarity index 100% rename from addons/legacy_jr/CfgWeapons.hpp rename to optionals/legacy_jr/CfgWeapons.hpp diff --git a/addons/legacy_jr/config.cpp b/optionals/legacy_jr/config.cpp similarity index 100% rename from addons/legacy_jr/config.cpp rename to optionals/legacy_jr/config.cpp diff --git a/addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp b/optionals/legacy_jr/legacy_jr_prep/CfgWeapons.hpp similarity index 100% rename from addons/legacy_jr/legacy_jr_prep/CfgWeapons.hpp rename to optionals/legacy_jr/legacy_jr_prep/CfgWeapons.hpp diff --git a/addons/legacy_jr/legacy_jr_prep/config.cpp b/optionals/legacy_jr/legacy_jr_prep/config.cpp similarity index 100% rename from addons/legacy_jr/legacy_jr_prep/config.cpp rename to optionals/legacy_jr/legacy_jr_prep/config.cpp diff --git a/addons/legacy_jr/legacy_jr_prep/script_component.hpp b/optionals/legacy_jr/legacy_jr_prep/script_component.hpp similarity index 100% rename from addons/legacy_jr/legacy_jr_prep/script_component.hpp rename to optionals/legacy_jr/legacy_jr_prep/script_component.hpp diff --git a/addons/legacy_jr/script_component.hpp b/optionals/legacy_jr/script_component.hpp similarity index 100% rename from addons/legacy_jr/script_component.hpp rename to optionals/legacy_jr/script_component.hpp diff --git a/addons/legacy_jr/stringtable.xml b/optionals/legacy_jr/stringtable.xml similarity index 100% rename from addons/legacy_jr/stringtable.xml rename to optionals/legacy_jr/stringtable.xml From c8ebb960e794904184da136b6b8c0f5d2b683c74 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 28 Jul 2019 22:45:33 +0200 Subject: [PATCH 042/116] fix scripted optics pip effect --- addons/optics/fnc_restartCamera.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/optics/fnc_restartCamera.sqf b/addons/optics/fnc_restartCamera.sqf index 53becf7fb..a705978ac 100644 --- a/addons/optics/fnc_restartCamera.sqf +++ b/addons/optics/fnc_restartCamera.sqf @@ -37,8 +37,8 @@ if (_reset) then { GVAR(camera) camSetTarget _unit; GVAR(camera) camCommit 1; - QGVAR(rendertarget0) setPiPEffect [2, 1.0, 1.0, 1.0, 0.0, [0.0, 1.0, 0.0, 0.25], [1.0, 0.0, 1.0, 1.0], [0.199, 0.587, 0.114, 0.0]]; GVAR(camera) cameraEffect ["INTERNAL", "BACK", QGVAR(rendertarget0)]; + QGVAR(rendertarget0) setPiPEffect [0]; INFO("Scripted camera restarted."); }; From 1298d715aa53a957a144aa3b8bffaec2342df8d0 Mon Sep 17 00:00:00 2001 From: RevoArma3 Date: Mon, 29 Jul 2019 16:32:14 +0200 Subject: [PATCH 043/116] Put tags into quotes Put tags into quotes --- addons/music/CfgMusic.hpp | 310 +++++++++++++++++++------------------- 1 file changed, 155 insertions(+), 155 deletions(-) diff --git a/addons/music/CfgMusic.hpp b/addons/music/CfgMusic.hpp index bb791a110..0a1fba660 100644 --- a/addons/music/CfgMusic.hpp +++ b/addons/music/CfgMusic.hpp @@ -7,212 +7,212 @@ class CfgMusic { type = "soundtrack"; theme = "safe"; - tags[] = {bis, lead}; + tags[] = {"bis", "lead"}; }; class LeadTrack01a_F { type = "soundtrack"; theme = "safe"; - tags[] = {bis, lead}; + tags[] = {"bis", "lead"}; }; class LeadTrack01b_F { type = "soundtrack"; theme = "safe"; - tags[] = {bis, lead}; + tags[] = {"bis", "lead"}; }; class LeadTrack01c_F { type = "soundtrack"; theme = "safe"; - tags[] = {bis, lead}; + tags[] = {"bis", "lead"}; }; class LeadTrack02_F { type = "soundtrack"; theme = "safe"; - tags[] = {bis, lead}; + tags[] = {"bis", "lead"}; }; class LeadTrack03_F { type = "soundtrack"; theme = "combat"; - tags[] = {bis, lead}; + tags[] = {"bis", "lead"}; }; class LeadTrack04_F { type = "soundtrack"; theme = "combat"; - tags[] = {bis, lead, action}; + tags[] = {"bis", "lead", "action"}; }; class LeadTrack04a_F { type = "soundtrack"; theme = "combat"; - tags[] = {bis, lead, action}; + tags[] = {"bis", "lead", "action"}; }; class LeadTrack05_F { type = "soundtrack"; theme = "combat"; - tags[] = {bis, lead, action}; + tags[] = {"bis", "lead", "action"}; }; class LeadTrack06_F { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead}; + tags[] = {"bis", "lead"}; }; class ambientTrack01_F { type = "ambient"; theme = "stealth"; - tags[] = {bis}; + tags[] = {"bis"}; }; class ambientTrack01a_F { type = "ambient"; theme = "stealth"; - tags[] = {bis}; + tags[] = {"bis"}; }; class ambientTrack01b_F { type = "ambient"; theme = "stealth"; - tags[] = {bis}; + tags[] = {"bis"}; }; class ambientTrack03_F { type = "ambient"; theme = "safe"; - tags[] = {bis}; + tags[] = {"bis"}; }; class ambientTrack04a_F { type = "ambient"; theme = "stealth"; - tags[] = {bis}; + tags[] = {"bis"}; }; class ambientTrack04_F { type = "ambient"; theme = "stealth"; - tags[] = {bis}; + tags[] = {"bis"}; }; class BackgroundTrack03_F { type = "soundtrack"; theme = "combat"; - tags[] = {bis, background, action}; + tags[] = {"bis", "background", "action"}; }; class BackgroundTrack01_F { type = "soundtrack"; theme = "safe"; - tags[] = {bis, background, calm}; + tags[] = {"bis", "background", "calm"}; }; class BackgroundTrack01a_F { type = "soundtrack"; theme = "safe"; - tags[] = {bis, background, calm}; + tags[] = {"bis", "background", "calm"}; }; class BackgroundTrack02_F { type = "soundtrack"; theme = "safe"; - tags[] = {bis, background, calm}; + tags[] = {"bis", "background", "calm"}; }; class Track01_Proteus { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track02_SolarPower { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track03_OnTheRoad { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track04_Underwater1 { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track05_Underwater2 { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track06_CarnHeli { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track07_actionDark { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track08_Night_ambient { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track09_Night_percussions { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track10_StageB_action { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track11_StageB_stealth { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track12_StageC_action { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track13_StageC_negative { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track14_MainMenu { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; class Track15_MainTheme { type = "soundtrack"; theme = "electronic"; - tags[] = {bis, background}; + tags[] = {"bis", "background"}; }; /* ---------------------------------------------- @@ -222,26 +222,26 @@ class CfgMusic class LeadTrack01_F_Bootcamp { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, bootcamp}; + theme = ""action""; + tags[] = {"bis", "lead", "bootcamp"}; }; class LeadTrack01b_F_Bootcamp { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, bootcamp}; + theme = ""calm""; + tags[] = {"bis", "lead", "bootcamp"}; }; class LeadTrack02_F_Bootcamp { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, bootcamp}; + theme = ""action""; + tags[] = {"bis", "lead", "bootcamp"}; }; class LeadTrack03_F_Bootcamp { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, bootcamp}; + theme = ""calm""; + tags[] = {"bis", "lead", "bootcamp"}; }; /* ---------------------------------------------- @@ -250,74 +250,74 @@ class CfgMusic class LeadTrack01_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; class LeadTrack02_F_EPA { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epa}; + theme = ""action""; + tags[] = {"bis", "lead", "epa"}; }; class LeadTrack02a_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; class LeadTrack02b_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; class LeadTrack03_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; class LeadTrack03a_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; class EventTrack01_F_EPA { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epa}; + theme = ""action""; + tags[] = {"bis", "lead", "epa"}; }; class EventTrack01a_F_EPA { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epa}; + theme = ""action""; + tags[] = {"bis", "lead", "epa"}; }; class EventTrack02_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; class EventTrack02a_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; class EventTrack03_F_EPA { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epa}; + theme = ""action""; + tags[] = {"bis", "lead", "epa"}; }; class EventTrack03a_F_EPA { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epa}; + theme = ""calm""; + tags[] = {"bis", "lead", "epa"}; }; /* ---------------------------------------------- a3\music_f_epb @@ -325,110 +325,110 @@ class CfgMusic class LeadTrack01_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class LeadTrack01a_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class LeadTrack02_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class LeadTrack02a_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class LeadTrack02b_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class LeadTrack03_F_EPB { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epb}; + tags[] = {"bis", "lead", "epb"}; }; class LeadTrack03a_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class LeadTrack04_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack01_F_EPB { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epb}; + theme = ""calm""; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack01a_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack02_F_EPB { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epb}; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack02a_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack03_F_EPB { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epb}; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack04_F_EPB { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epb}; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack04a_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class EventTrack03a_F_EPB { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epb}; + theme = ""action""; + tags[] = {"bis", "lead", "epb"}; }; class ambientTrack01_F_EPB { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epb}; + tags[] = {"bis", "lead", "epb"}; }; class BackgroundTrack01_F_EPB { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epb}; + tags[] = {"bis", "lead", "epb"}; }; /* ---------------------------------------------- a3\music_f_epc @@ -436,116 +436,116 @@ class CfgMusic class LeadTrack01_F_EPC { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epc}; + theme = ""calm""; + tags[] = {"bis", "lead", "epc"}; }; class LeadTrack02_F_EPC { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class LeadTrack03_F_EPC { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epc}; + tags[] = {"bis", "lead", "epc"}; }; class LeadTrack04_F_EPC { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class LeadTrack05_F_EPC { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class LeadTrack06_F_EPC { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class LeadTrack06b_F_EPC { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class EventTrack01_F_EPC { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epc}; + tags[] = {"bis", "lead", "epc"}; }; class EventTrack02_F_EPC { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class EventTrack02b_F_EPC { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class EventTrack03_F_EPC { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epc}; + theme = ""calm""; + tags[] = {"bis", "lead", "epc"}; }; class BackgroundTrack01_F_EPC { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epc}; + tags[] = {"bis", "lead", "epc"}; }; class BackgroundTrack02_F_EPC { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epc}; + theme = ""calm""; + tags[] = {"bis", "lead", "epc"}; }; class BackgroundTrack03_F_EPC { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, epc}; + theme = ""calm""; + tags[] = {"bis", "lead", "epc"}; }; class BackgroundTrack04_F_EPC { type = "soundtrack"; theme = "stealth"; - tags[] = {bis, lead, epc}; + tags[] = {"bis", "lead", "epc"}; }; class C_EA_RadioBroadcast1 { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class C_EA_RadioBroadcast2 { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class C_EA_RadioMusic1 { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; class C_EA_RadioMusic2 { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, epc}; + theme = ""action""; + tags[] = {"bis", "lead", "epc"}; }; /* ---------------------------------------------- a3\music_f_heli @@ -553,8 +553,8 @@ class CfgMusic class LeadTrack01_F_Heli { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, heli}; + theme = ""action""; + tags[] = {"bis", "lead", "heli"}; }; /* ---------------------------------------------- a3\music_f_mark @@ -562,20 +562,20 @@ class CfgMusic class LeadTrack01_F_Mark { type = "soundtrack"; - theme = "action"; - tags[] = {bis, lead, mark}; + theme = ""action""; + tags[] = {"bis", "lead", "mark"}; }; class LeadTrack02_F_Mark { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, mark}; + theme = ""calm""; + tags[] = {"bis", "lead", "mark"}; }; class LeadTrack03_F_Mark { type = "soundtrack"; - theme = "calm"; - tags[] = {bis, lead, mark}; + theme = ""calm""; + tags[] = {"bis", "lead", "mark"}; }; /* ---------------------------------------------- a3\music_f_exp (APEX) @@ -584,91 +584,91 @@ class CfgMusic { type = "soundtrack"; theme = "Action"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class LeadTrack01a_F_EXP { type = "soundtrack"; theme = "Action"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class LeadTrack01b_F_EXP { type = "soundtrack"; theme = "Action"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class LeadTrack01c_F_EXP { type = "soundtrack"; theme = "Action"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class LeadTrack02_F_EXP { type = "soundtrack"; theme = "Action"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class LeadTrack03_F_EXP { type = "soundtrack"; theme = "Action"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class LeadTrack04_F_EXP { type = "soundtrack"; theme = "Action"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack01_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack01a_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack01b_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack02_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack02a_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack02b_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack02c_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; class AmbientTrack02d_F_EXP { type = "soundtrack"; theme = "Stealth"; - tags[] = {bis, apex}; + tags[] = {"bis", "apex"}; }; -}; \ No newline at end of file +}; From 72136154b70dfc5d12ca87a405c12b87e05b5ac4 Mon Sep 17 00:00:00 2001 From: RevoArma3 Date: Tue, 30 Jul 2019 00:59:06 +0200 Subject: [PATCH 044/116] Removed double quotes from some theme entries. Removed double quotes from some theme entries. --- addons/music/CfgMusic.hpp | 94 +++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/addons/music/CfgMusic.hpp b/addons/music/CfgMusic.hpp index 0a1fba660..ccd967b7e 100644 --- a/addons/music/CfgMusic.hpp +++ b/addons/music/CfgMusic.hpp @@ -222,25 +222,25 @@ class CfgMusic class LeadTrack01_F_Bootcamp { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "bootcamp"}; }; class LeadTrack01b_F_Bootcamp { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "bootcamp"}; }; class LeadTrack02_F_Bootcamp { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "bootcamp"}; }; class LeadTrack03_F_Bootcamp { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "bootcamp"}; }; @@ -250,73 +250,73 @@ class CfgMusic class LeadTrack01_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; class LeadTrack02_F_EPA { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epa"}; }; class LeadTrack02a_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; class LeadTrack02b_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; class LeadTrack03_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; class LeadTrack03a_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; class EventTrack01_F_EPA { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epa"}; }; class EventTrack01a_F_EPA { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epa"}; }; class EventTrack02_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; class EventTrack02a_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; class EventTrack03_F_EPA { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epa"}; }; class EventTrack03a_F_EPA { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; /* ---------------------------------------------- @@ -325,31 +325,31 @@ class CfgMusic class LeadTrack01_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class LeadTrack01a_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class LeadTrack02_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class LeadTrack02a_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class LeadTrack02b_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class LeadTrack03_F_EPB @@ -361,25 +361,25 @@ class CfgMusic class LeadTrack03a_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class LeadTrack04_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class EventTrack01_F_EPB { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epb"}; }; class EventTrack01a_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class EventTrack02_F_EPB @@ -391,7 +391,7 @@ class CfgMusic class EventTrack02a_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class EventTrack03_F_EPB @@ -409,13 +409,13 @@ class CfgMusic class EventTrack04a_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class EventTrack03a_F_EPB { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epb"}; }; class ambientTrack01_F_EPB @@ -436,13 +436,13 @@ class CfgMusic class LeadTrack01_F_EPC { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; class LeadTrack02_F_EPC { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class LeadTrack03_F_EPC @@ -454,25 +454,25 @@ class CfgMusic class LeadTrack04_F_EPC { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class LeadTrack05_F_EPC { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class LeadTrack06_F_EPC { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class LeadTrack06b_F_EPC { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class EventTrack01_F_EPC @@ -484,19 +484,19 @@ class CfgMusic class EventTrack02_F_EPC { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class EventTrack02b_F_EPC { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class EventTrack03_F_EPC { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; class BackgroundTrack01_F_EPC @@ -508,13 +508,13 @@ class CfgMusic class BackgroundTrack02_F_EPC { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; class BackgroundTrack03_F_EPC { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; class BackgroundTrack04_F_EPC @@ -526,25 +526,25 @@ class CfgMusic class C_EA_RadioBroadcast1 { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class C_EA_RadioBroadcast2 { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class C_EA_RadioMusic1 { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; class C_EA_RadioMusic2 { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "epc"}; }; /* ---------------------------------------------- @@ -553,7 +553,7 @@ class CfgMusic class LeadTrack01_F_Heli { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "heli"}; }; /* ---------------------------------------------- @@ -562,19 +562,19 @@ class CfgMusic class LeadTrack01_F_Mark { type = "soundtrack"; - theme = ""action""; + theme = "action"; tags[] = {"bis", "lead", "mark"}; }; class LeadTrack02_F_Mark { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "mark"}; }; class LeadTrack03_F_Mark { type = "soundtrack"; - theme = ""calm""; + theme = "calm"; tags[] = {"bis", "lead", "mark"}; }; /* ---------------------------------------------- From f46e92bc799a2f0ad728990de485e2150fdbdeb2 Mon Sep 17 00:00:00 2001 From: RevoArma3 Date: Tue, 30 Jul 2019 16:47:45 +0200 Subject: [PATCH 045/116] Opening brackes are now EOL - Opening brackes are now EOL --- addons/music/CfgMusic.hpp | 325 +++++++++++++------------------------- 1 file changed, 108 insertions(+), 217 deletions(-) diff --git a/addons/music/CfgMusic.hpp b/addons/music/CfgMusic.hpp index ccd967b7e..985bdcaba 100644 --- a/addons/music/CfgMusic.hpp +++ b/addons/music/CfgMusic.hpp @@ -1,215 +1,179 @@ -class CfgMusic -{ +class CfgMusic { /* ---------------------------------------------- a3\music_f ---------------------------------------------- */ - class LeadTrack01_F - { + class LeadTrack01_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "lead"}; }; - class LeadTrack01a_F - { + class LeadTrack01a_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "lead"}; }; - class LeadTrack01b_F - { + class LeadTrack01b_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "lead"}; }; - class LeadTrack01c_F - { + class LeadTrack01c_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "lead"}; }; - class LeadTrack02_F - { + class LeadTrack02_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "lead"}; }; - class LeadTrack03_F - { + class LeadTrack03_F { type = "soundtrack"; theme = "combat"; tags[] = {"bis", "lead"}; }; - class LeadTrack04_F - { + class LeadTrack04_F { type = "soundtrack"; theme = "combat"; tags[] = {"bis", "lead", "action"}; }; - class LeadTrack04a_F - { + class LeadTrack04a_F { type = "soundtrack"; theme = "combat"; tags[] = {"bis", "lead", "action"}; }; - class LeadTrack05_F - { + class LeadTrack05_F { type = "soundtrack"; theme = "combat"; tags[] = {"bis", "lead", "action"}; }; - class LeadTrack06_F - { + class LeadTrack06_F { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead"}; }; - class ambientTrack01_F - { + class ambientTrack01_F { type = "ambient"; theme = "stealth"; tags[] = {"bis"}; }; - class ambientTrack01a_F - { + class ambientTrack01a_F { type = "ambient"; theme = "stealth"; tags[] = {"bis"}; }; - class ambientTrack01b_F - { + class ambientTrack01b_F { type = "ambient"; theme = "stealth"; tags[] = {"bis"}; }; - class ambientTrack03_F - { + class ambientTrack03_F { type = "ambient"; theme = "safe"; tags[] = {"bis"}; }; - class ambientTrack04a_F - { + class ambientTrack04a_F { type = "ambient"; theme = "stealth"; tags[] = {"bis"}; }; - class ambientTrack04_F - { + class ambientTrack04_F { type = "ambient"; theme = "stealth"; tags[] = {"bis"}; }; - class BackgroundTrack03_F - { + class BackgroundTrack03_F { type = "soundtrack"; theme = "combat"; tags[] = {"bis", "background", "action"}; }; - class BackgroundTrack01_F - { + class BackgroundTrack01_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "background", "calm"}; }; - class BackgroundTrack01a_F - { + class BackgroundTrack01a_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "background", "calm"}; }; - class BackgroundTrack02_F - { + class BackgroundTrack02_F { type = "soundtrack"; theme = "safe"; tags[] = {"bis", "background", "calm"}; }; - class Track01_Proteus - { + class Track01_Proteus { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track02_SolarPower - { + class Track02_SolarPower { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track03_OnTheRoad - { + class Track03_OnTheRoad { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track04_Underwater1 - { + class Track04_Underwater1 { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track05_Underwater2 - { + class Track05_Underwater2 { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track06_CarnHeli - { + class Track06_CarnHeli { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track07_actionDark - { + class Track07_actionDark { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track08_Night_ambient - { + class Track08_Night_ambient { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track09_Night_percussions - { + class Track09_Night_percussions { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track10_StageB_action - { + class Track10_StageB_action { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track11_StageB_stealth - { + class Track11_StageB_stealth { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track12_StageC_action - { + class Track12_StageC_action { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track13_StageC_negative - { + class Track13_StageC_negative { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track14_MainMenu - { + class Track14_MainMenu { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; }; - class Track15_MainTheme - { + class Track15_MainTheme { type = "soundtrack"; theme = "electronic"; tags[] = {"bis", "background"}; @@ -219,26 +183,22 @@ class CfgMusic a3\music_f_bootcamp ---------------------------------------------- */ - class LeadTrack01_F_Bootcamp - { + class LeadTrack01_F_Bootcamp { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "bootcamp"}; }; - class LeadTrack01b_F_Bootcamp - { + class LeadTrack01b_F_Bootcamp { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "bootcamp"}; }; - class LeadTrack02_F_Bootcamp - { + class LeadTrack02_F_Bootcamp { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "bootcamp"}; }; - class LeadTrack03_F_Bootcamp - { + class LeadTrack03_F_Bootcamp { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "bootcamp"}; @@ -247,74 +207,62 @@ class CfgMusic /* ---------------------------------------------- a3\music_f_epa ---------------------------------------------- */ - class LeadTrack01_F_EPA - { + class LeadTrack01_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; - class LeadTrack02_F_EPA - { + class LeadTrack02_F_EPA { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epa"}; }; - class LeadTrack02a_F_EPA - { + class LeadTrack02a_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; - class LeadTrack02b_F_EPA - { + class LeadTrack02b_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; - class LeadTrack03_F_EPA - { + class LeadTrack03_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; - class LeadTrack03a_F_EPA - { + class LeadTrack03a_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; - class EventTrack01_F_EPA - { + class EventTrack01_F_EPA { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epa"}; }; - class EventTrack01a_F_EPA - { + class EventTrack01a_F_EPA { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epa"}; }; - class EventTrack02_F_EPA - { + class EventTrack02_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; - class EventTrack02a_F_EPA - { + class EventTrack02a_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; }; - class EventTrack03_F_EPA - { + class EventTrack03_F_EPA { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epa"}; }; - class EventTrack03a_F_EPA - { + class EventTrack03a_F_EPA { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epa"}; @@ -322,110 +270,92 @@ class CfgMusic /* ---------------------------------------------- a3\music_f_epb ---------------------------------------------- */ - class LeadTrack01_F_EPB - { + class LeadTrack01_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class LeadTrack01a_F_EPB - { + class LeadTrack01a_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class LeadTrack02_F_EPB - { + class LeadTrack02_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class LeadTrack02a_F_EPB - { + class LeadTrack02a_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class LeadTrack02b_F_EPB - { + class LeadTrack02b_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class LeadTrack03_F_EPB - { + class LeadTrack03_F_EPB { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epb"}; }; - class LeadTrack03a_F_EPB - { + class LeadTrack03a_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class LeadTrack04_F_EPB - { + class LeadTrack04_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack01_F_EPB - { + class EventTrack01_F_EPB { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack01a_F_EPB - { + class EventTrack01a_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack02_F_EPB - { + class EventTrack02_F_EPB { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack02a_F_EPB - { + class EventTrack02a_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack03_F_EPB - { + class EventTrack03_F_EPB { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack04_F_EPB - { + class EventTrack04_F_EPB { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack04a_F_EPB - { + class EventTrack04a_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class EventTrack03a_F_EPB - { + class EventTrack03a_F_EPB { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epb"}; }; - class ambientTrack01_F_EPB - { + class ambientTrack01_F_EPB { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epb"}; }; - class BackgroundTrack01_F_EPB - { + class BackgroundTrack01_F_EPB { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epb"}; @@ -433,116 +363,97 @@ class CfgMusic /* ---------------------------------------------- a3\music_f_epc ---------------------------------------------- */ - class LeadTrack01_F_EPC - { + class LeadTrack01_F_EPC { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; - class LeadTrack02_F_EPC - { + class LeadTrack02_F_EPC { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class LeadTrack03_F_EPC - { + class LeadTrack03_F_EPC { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epc"}; }; - class LeadTrack04_F_EPC - { + class LeadTrack04_F_EPC { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class LeadTrack05_F_EPC - { + class LeadTrack05_F_EPC { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class LeadTrack06_F_EPC - { + class LeadTrack06_F_EPC { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class LeadTrack06b_F_EPC - { + class LeadTrack06b_F_EPC { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class EventTrack01_F_EPC - { + class EventTrack01_F_EPC { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epc"}; }; - class EventTrack02_F_EPC - { + class EventTrack02_F_EPC { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class EventTrack02b_F_EPC - { + class EventTrack02b_F_EPC { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class EventTrack03_F_EPC - { + class EventTrack03_F_EPC { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; - class BackgroundTrack01_F_EPC - { + class BackgroundTrack01_F_EPC { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epc"}; }; - class BackgroundTrack02_F_EPC - { + class BackgroundTrack02_F_EPC { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; - class BackgroundTrack03_F_EPC - { + class BackgroundTrack03_F_EPC { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "epc"}; }; - class BackgroundTrack04_F_EPC - { + class BackgroundTrack04_F_EPC { type = "soundtrack"; theme = "stealth"; tags[] = {"bis", "lead", "epc"}; }; - class C_EA_RadioBroadcast1 - { + class C_EA_RadioBroadcast1 { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class C_EA_RadioBroadcast2 - { + class C_EA_RadioBroadcast2 { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class C_EA_RadioMusic1 - { + class C_EA_RadioMusic1 { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; }; - class C_EA_RadioMusic2 - { + class C_EA_RadioMusic2 { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "epc"}; @@ -550,8 +461,7 @@ class CfgMusic /* ---------------------------------------------- a3\music_f_heli ---------------------------------------------- */ - class LeadTrack01_F_Heli - { + class LeadTrack01_F_Heli { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "heli"}; @@ -559,20 +469,17 @@ class CfgMusic /* ---------------------------------------------- a3\music_f_mark ---------------------------------------------- */ - class LeadTrack01_F_Mark - { + class LeadTrack01_F_Mark { type = "soundtrack"; theme = "action"; tags[] = {"bis", "lead", "mark"}; }; - class LeadTrack02_F_Mark - { + class LeadTrack02_F_Mark { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "mark"}; }; - class LeadTrack03_F_Mark - { + class LeadTrack03_F_Mark { type = "soundtrack"; theme = "calm"; tags[] = {"bis", "lead", "mark"}; @@ -580,95 +487,79 @@ class CfgMusic /* ---------------------------------------------- a3\music_f_exp (APEX) ---------------------------------------------- */ - class LeadTrack01_F_EXP - { + class LeadTrack01_F_EXP { type = "soundtrack"; theme = "Action"; tags[] = {"bis", "apex"}; }; - class LeadTrack01a_F_EXP - { + class LeadTrack01a_F_EXP { type = "soundtrack"; theme = "Action"; tags[] = {"bis", "apex"}; }; - class LeadTrack01b_F_EXP - { + class LeadTrack01b_F_EXP { type = "soundtrack"; theme = "Action"; tags[] = {"bis", "apex"}; }; - class LeadTrack01c_F_EXP - { + class LeadTrack01c_F_EXP { type = "soundtrack"; theme = "Action"; tags[] = {"bis", "apex"}; }; - class LeadTrack02_F_EXP - { + class LeadTrack02_F_EXP { type = "soundtrack"; theme = "Action"; tags[] = {"bis", "apex"}; }; - class LeadTrack03_F_EXP - { + class LeadTrack03_F_EXP { type = "soundtrack"; theme = "Action"; tags[] = {"bis", "apex"}; }; - class LeadTrack04_F_EXP - { + class LeadTrack04_F_EXP { type = "soundtrack"; theme = "Action"; tags[] = {"bis", "apex"}; }; - class AmbientTrack01_F_EXP - { + class AmbientTrack01_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - class AmbientTrack01a_F_EXP - { + class AmbientTrack01a_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - class AmbientTrack01b_F_EXP - { + class AmbientTrack01b_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - class AmbientTrack02_F_EXP - { + class AmbientTrack02_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - class AmbientTrack02a_F_EXP - { + class AmbientTrack02a_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - class AmbientTrack02b_F_EXP - { + class AmbientTrack02b_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - class AmbientTrack02c_F_EXP - { + class AmbientTrack02c_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - class AmbientTrack02d_F_EXP - { + class AmbientTrack02d_F_EXP { type = "soundtrack"; theme = "Stealth"; tags[] = {"bis", "apex"}; }; - }; From 5ff62dcef9a81eb4604a55f02df0b58bb7619425 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 2 Aug 2019 19:22:56 +0200 Subject: [PATCH 046/116] fix optic tilting in vehicles --- addons/optics/fnc_gunBank.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/optics/fnc_gunBank.sqf b/addons/optics/fnc_gunBank.sqf index 6a36227bf..e80b7a1c8 100644 --- a/addons/optics/fnc_gunBank.sqf +++ b/addons/optics/fnc_gunBank.sqf @@ -20,6 +20,8 @@ Author: commy2 ---------------------------------------------------------------------------- */ +if !(cameraOn isKindOf "CAManBase") exitWith {0}; + private _unit = [] call CBA_fnc_currentUnit; private _pelvis = _unit modelToWorldVisualWorld (_unit selectionPosition "Pelvis"); From 1cafbd204ac46dee4e8aa52d5d082f64a0d8a28c Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 2 Aug 2019 22:18:21 +0200 Subject: [PATCH 047/116] move scope expressions to nobin component --- addons/ee/$NOBIN$ | 0 addons/ee/config.cpp | 30 ++++++++++++++++++++++++++++++ addons/xeh/CfgVehicles.hpp | 22 ---------------------- addons/xeh/ee/config.cpp | 6 ------ 4 files changed, 30 insertions(+), 28 deletions(-) create mode 100644 addons/ee/$NOBIN$ create mode 100644 addons/ee/config.cpp delete mode 100644 addons/xeh/ee/config.cpp diff --git a/addons/ee/$NOBIN$ b/addons/ee/$NOBIN$ new file mode 100644 index 000000000..e69de29bb diff --git a/addons/ee/config.cpp b/addons/ee/config.cpp new file mode 100644 index 000000000..33dee6269 --- /dev/null +++ b/addons/ee/config.cpp @@ -0,0 +1,30 @@ +class CfgPatches { + class cba_ee { + requiredAddons[] = {"cba_xeh"}; + units[] = {}; + }; +}; + +class CfgVehicles { + class B_W_Soldier_F; + class B_W_Story_Protagonist_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; // Inherits from a public base class. Downgrade to protected if Contact component is not loaded. + }; + class B_W_Story_Major_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; + class B_W_Story_Instructor_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; + class B_W_Story_Soldier_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; + class B_W_Story_Leader_01_F: B_W_Soldier_F { + XEH_ENABLED; + scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; + }; +}; diff --git a/addons/xeh/CfgVehicles.hpp b/addons/xeh/CfgVehicles.hpp index e1dcfbb58..c23e1de8f 100644 --- a/addons/xeh/CfgVehicles.hpp +++ b/addons/xeh/CfgVehicles.hpp @@ -356,28 +356,6 @@ class CfgVehicles { XEH_ENABLED; }; - class B_W_Soldier_F; - class B_W_Story_Protagonist_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; // Inherits from a public base class. Downgrade to protected if Contact component is not loaded. - }; - class B_W_Story_Major_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; - class B_W_Story_Instructor_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; - class B_W_Story_Soldier_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; - class B_W_Story_Leader_01_F: B_W_Soldier_F { - XEH_ENABLED; - scope = "1 + parseNumber isClass (configFile >> 'CfgPatches' >> 'A3_Data_F_Contact')"; - }; - class O_R_Soldier_Base_F; class O_R_Story_Capitan_01_F: O_R_Soldier_Base_F { XEH_ENABLED; diff --git a/addons/xeh/ee/config.cpp b/addons/xeh/ee/config.cpp deleted file mode 100644 index 1dc18df17..000000000 --- a/addons/xeh/ee/config.cpp +++ /dev/null @@ -1,6 +0,0 @@ -class CfgPatches { - class cba_ee { - requiredAddons[] = {"cba_xeh"}; - units[] = {}; - }; -}; From c0c34da5322d9b702a08a460352d8288987bacc4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 2 Aug 2019 15:21:32 -0500 Subject: [PATCH 048/116] Create $PBOPREFIX$ --- addons/ee/$PBOPREFIX$ | 1 + 1 file changed, 1 insertion(+) create mode 100644 addons/ee/$PBOPREFIX$ diff --git a/addons/ee/$PBOPREFIX$ b/addons/ee/$PBOPREFIX$ new file mode 100644 index 000000000..58937b0bf --- /dev/null +++ b/addons/ee/$PBOPREFIX$ @@ -0,0 +1 @@ +x\cba\addons\ee From 2942dc1c49b840674426fee6118afd9f90a99d38 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 4 Aug 2019 19:29:15 +0200 Subject: [PATCH 049/116] function header --- addons/ee/config.cpp | 2 ++ addons/ee/script_component.hpp | 1 + 2 files changed, 3 insertions(+) create mode 100644 addons/ee/script_component.hpp diff --git a/addons/ee/config.cpp b/addons/ee/config.cpp index 33dee6269..e8cd5ceb8 100644 --- a/addons/ee/config.cpp +++ b/addons/ee/config.cpp @@ -1,3 +1,5 @@ +#include "script_component.hpp" + class CfgPatches { class cba_ee { requiredAddons[] = {"cba_xeh"}; diff --git a/addons/ee/script_component.hpp b/addons/ee/script_component.hpp new file mode 100644 index 000000000..873a53243 --- /dev/null +++ b/addons/ee/script_component.hpp @@ -0,0 +1 @@ +#include "\x\cba\addons\xeh\script_component.hpp" From dcc859467407cd73057bec59c6024efd34c5bca9 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 4 Aug 2019 19:42:27 +0200 Subject: [PATCH 050/116] Bump to v3.12.1.190804 --- README.md | 4 ++-- addons/main/script_version.hpp | 4 ++-- mod.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ce200a85f..41d98b347 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Community Base Addons [![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) -[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.0) -[![](https://img.shields.io/badge/Release-3.12.0-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/latest) +[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.1) +[![](https://img.shields.io/badge/Release-3.12.1-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/latest) [![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) [![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) [![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index efe065654..f498f6d8d 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 -#define PATCHLVL 0 -#define BUILD 190708 +#define PATCHLVL 1 +#define BUILD 190804 diff --git a/mod.cpp b/mod.cpp index 1b63c4613..3947768b8 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,4 +1,4 @@ -name = "Community Base Addons v3.12.0"; +name = "Community Base Addons v3.12.1"; picture = "logo_cba_ca.paa"; actionName = "Website"; action = "https://github.com/CBATeam/CBA_A3/wiki"; From 053f8fb96fe93be74a4b491743e720a3d5118879 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 4 Aug 2019 20:07:48 +0200 Subject: [PATCH 051/116] Update mod.cpp on build --- mod.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod.cpp b/mod.cpp index 3947768b8..89dd526f8 100644 --- a/mod.cpp +++ b/mod.cpp @@ -1,4 +1,4 @@ -name = "Community Base Addons v3.12.1"; +name = "Community Base Addons v0.0.0"; picture = "logo_cba_ca.paa"; actionName = "Website"; action = "https://github.com/CBATeam/CBA_A3/wiki"; From 74ba84716d3dce5729bb407e73331faf98376c42 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 4 Aug 2019 20:16:03 +0200 Subject: [PATCH 052/116] Support copying additional directories in make.py --- tools/make.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/make.py b/tools/make.py index 44494a4f0..5ffd7731d 100644 --- a/tools/make.py +++ b/tools/make.py @@ -73,7 +73,7 @@ prefix = "cba" pbo_name_prefix = "cba_" signature_blacklist = [] -importantFiles = ["mod.cpp", "meta.cpp", "README.md", "LICENSE.md", "logo_cba_ca.paa"] +importantFiles = ["mod.cpp", "meta.cpp", "README.md", "LICENSE.md", "logo_cba_ca.paa", "userconfig"] versionFiles = ["mod.cpp","addons\main_a3\CfgMods.hpp"] ciBuild = False # Used for CI builds @@ -326,8 +326,12 @@ def copy_important_files(source_dir,destination_dir): for file in importantFiles: filePath = os.path.join(module_root_parent, file) if os.path.exists(filePath): - print_green("Copying file => {}".format(filePath)) - shutil.copy(os.path.join(source_dir,filePath), destination_dir) + if os.path.isdir(filePath): + print_green("Copying directory => {}".format(filePath)) + shutil.copytree(os.path.join(source_dir, filePath), os.path.join(destination_dir, file)) + else: + print_green("Copying file => {}".format(filePath)) + shutil.copy(os.path.join(source_dir,filePath), destination_dir) else: missingFiles.append("{}".format(filePath)) print_error("Failed copying file => {}".format(filePath)) From 875beba0346904d514df4ac650272445450930b4 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sun, 4 Aug 2019 21:47:15 +0200 Subject: [PATCH 053/116] Fix overwrite builds for folder copy in make.py --- tools/make.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/make.py b/tools/make.py index 5ffd7731d..9d5901398 100644 --- a/tools/make.py +++ b/tools/make.py @@ -328,6 +328,7 @@ def copy_important_files(source_dir,destination_dir): if os.path.exists(filePath): if os.path.isdir(filePath): print_green("Copying directory => {}".format(filePath)) + shutil.rmtree(os.path.join(destination_dir, file), True) shutil.copytree(os.path.join(source_dir, filePath), os.path.join(destination_dir, file)) else: print_green("Copying file => {}".format(filePath)) From 72256f49cd3a607d04c46ace58b0bd24d9569586 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 5 Aug 2019 00:40:34 -0500 Subject: [PATCH 054/116] fix ee --- addons/ee/config.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/ee/config.cpp b/addons/ee/config.cpp index e8cd5ceb8..e8c52941e 100644 --- a/addons/ee/config.cpp +++ b/addons/ee/config.cpp @@ -6,6 +6,7 @@ class CfgPatches { units[] = {}; }; }; +class XEH_CLASS_BASE; class CfgVehicles { class B_W_Soldier_F; From 75eea96e4f1763ee95761ddc8d97ff13415c1589 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 5 Aug 2019 15:50:37 +0200 Subject: [PATCH 055/116] Bump to v3.12.1.190805 --- addons/main/script_version.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index f498f6d8d..3da0e5a89 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 #define PATCHLVL 1 -#define BUILD 190804 +#define BUILD 190805 From 3a6b5af8c63a56fc491b18bae1b111efe58f2303 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 6 Aug 2019 16:51:50 +0200 Subject: [PATCH 056/116] Add randomizeFacewear to common CfgFunctions --- addons/common/CfgFunctions.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/common/CfgFunctions.hpp b/addons/common/CfgFunctions.hpp index d8283148e..fde194db6 100644 --- a/addons/common/CfgFunctions.hpp +++ b/addons/common/CfgFunctions.hpp @@ -77,6 +77,7 @@ class CfgFunctions { PATHTO_FNC(binocularMagazine); PATHTO_FNC(addBinocularMagazine); PATHTO_FNC(removeBinocularMagazine); + PATHTO_FNC(randomizeFacewear); }; class Cargo { From 35f0f44e8818400e3fabea4f22cbd8da344a0385 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 6 Aug 2019 17:04:37 +0200 Subject: [PATCH 057/116] Add CBA_fnc_randomizeFacewear --- addons/common/fnc_randomizeFacewear.sqf | 44 +++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 addons/common/fnc_randomizeFacewear.sqf diff --git a/addons/common/fnc_randomizeFacewear.sqf b/addons/common/fnc_randomizeFacewear.sqf new file mode 100644 index 000000000..03a074955 --- /dev/null +++ b/addons/common/fnc_randomizeFacewear.sqf @@ -0,0 +1,44 @@ +#include "script_component.hpp" +/* ---------------------------------------------------------------------------- +Function: CBA_fnc_randomizeFacewear + +Description: + Add config defined weighted random facewear to unit. + Working 'allowedFacewear' replacement for BIS_fnc_unitHeadgear. + +Parameters: + _unit - unit + +Returns: + true on success, false on error + +Examples: + (begin example) + [unit] call CBA_fnc_randomizeFacewear + (end) + +Author: + commy2 +---------------------------------------------------------------------------- */ +SCRIPT(randomizeFacewear); + +params [["_unit", objNull]]; + +if (isNull _unit) exitWith { + TRACE_1("unit is null",_unit); + false +}; + +if (!local _unit || {!(_unit getVariable ["BIS_enableRandomization", true])}) exitWith {true}; + +private _allowedFacewear = getArray (configFile >> "CfgVehicles" >> typeOf _unit >> "allowedFacewear"); + +if (_allowedFacewear isEqualTo []) exitWith {true}; + +private _facewear = selectRandomWeighted _allowedFacewear; + +if (_facewear == "None") then { + removeGoggles _unit; +} else { + _unit addGoggles _facewear; +}; From 7c631df52865a56de2061d7ca2bb2493cd698ed8 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 6 Aug 2019 17:19:40 +0200 Subject: [PATCH 058/116] Run randomizeFacewear on all units --- addons/common/XEH_preInit.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index a407a7831..a90284d73 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -71,4 +71,7 @@ activateAddons GVAR(addons); }]; }] call CBA_fnc_addClassEventHandler; +// Working replacement for 'allowedFacewear' BIS_fnc_unitHeadgear +["CAManBase", "InitPost", CBA_fnc_randomizeFacewear] call CBA_fnc_addClassEventHandler; + ADDON = true; From c0cee7e9cf1c6a9ee8556c8612c953a62afe8052 Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 6 Aug 2019 19:13:19 +0200 Subject: [PATCH 059/116] Prefix allowedFacewear --- addons/common/XEH_preInit.sqf | 2 +- addons/common/fnc_randomizeFacewear.sqf | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index a90284d73..b9e762ed3 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -71,7 +71,7 @@ activateAddons GVAR(addons); }]; }] call CBA_fnc_addClassEventHandler; -// Working replacement for 'allowedFacewear' BIS_fnc_unitHeadgear +// Facewear randomization ["CAManBase", "InitPost", CBA_fnc_randomizeFacewear] call CBA_fnc_addClassEventHandler; ADDON = true; diff --git a/addons/common/fnc_randomizeFacewear.sqf b/addons/common/fnc_randomizeFacewear.sqf index 03a074955..245a07e84 100644 --- a/addons/common/fnc_randomizeFacewear.sqf +++ b/addons/common/fnc_randomizeFacewear.sqf @@ -4,7 +4,7 @@ Function: CBA_fnc_randomizeFacewear Description: Add config defined weighted random facewear to unit. - Working 'allowedFacewear' replacement for BIS_fnc_unitHeadgear. + Uses same config as headgearList[]. Parameters: _unit - unit @@ -31,13 +31,13 @@ if (isNull _unit) exitWith { if (!local _unit || {!(_unit getVariable ["BIS_enableRandomization", true])}) exitWith {true}; -private _allowedFacewear = getArray (configFile >> "CfgVehicles" >> typeOf _unit >> "allowedFacewear"); +private _allowedFacewear = getArray (configFile >> "CfgVehicles" >> typeOf _unit >> "CBA_allowedFacewear"); if (_allowedFacewear isEqualTo []) exitWith {true}; private _facewear = selectRandomWeighted _allowedFacewear; -if (_facewear == "None") then { +if (_facewear == "") then { removeGoggles _unit; } else { _unit addGoggles _facewear; From ca565432ba0dd3366a49730bb1214767aa334413 Mon Sep 17 00:00:00 2001 From: jonpas Date: Wed, 7 Aug 2019 21:19:50 +0200 Subject: [PATCH 060/116] Apply suggestions from code review Co-Authored-By: commy2 --- addons/common/fnc_randomizeFacewear.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/common/fnc_randomizeFacewear.sqf b/addons/common/fnc_randomizeFacewear.sqf index 245a07e84..47dd56e09 100644 --- a/addons/common/fnc_randomizeFacewear.sqf +++ b/addons/common/fnc_randomizeFacewear.sqf @@ -14,13 +14,12 @@ Returns: Examples: (begin example) - [unit] call CBA_fnc_randomizeFacewear + [unit] call CBA_fnc_randomizeFacewear; (end) Author: commy2 ---------------------------------------------------------------------------- */ -SCRIPT(randomizeFacewear); params [["_unit", objNull]]; From 4aa92c64d6a0d706f9c720a1d6986e6f160b4079 Mon Sep 17 00:00:00 2001 From: Dominik Zarsky <43666286+Loupeznik@users.noreply.github.com> Date: Fri, 9 Aug 2019 19:09:52 +0200 Subject: [PATCH 061/116] added colored MX mag variants added khaki and black magazines to both MX magwell pools, deleted katiba mags from those pools --- addons/jam/magwells_65x39.hpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/addons/jam/magwells_65x39.hpp b/addons/jam/magwells_65x39.hpp index 6f7840232..57d60bea8 100644 --- a/addons/jam/magwells_65x39.hpp +++ b/addons/jam/magwells_65x39.hpp @@ -1,15 +1,21 @@ class CBA_65x39_MX { BI_mags[] = { "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_green", "30Rnd_65x39_caseless_mag_Tracer", - "30Rnd_65x39_caseless_green_mag_Tracer" + "30Rnd_65x39_caseless_khaki_mag_Tracer", + "30Rnd_65x39_caseless_khaki_mag", + "30Rnd_65x39_caseless_black_mag_Tracer", + "30Rnd_65x39_caseless_black_mag", }; }; class CBA_65x39_MX_XL { BI_mags[] = { "100Rnd_65x39_caseless_mag", - "100Rnd_65x39_caseless_mag_Tracer" + "100Rnd_65x39_caseless_mag_Tracer", + "100Rnd_65x39_caseless_khaki_mag_Tracer", + "100Rnd_65x39_caseless_khaki_mag", + "100Rnd_65x39_caseless_black_mag_Tracer", + "100Rnd_65x39_caseless_black_mag", }; }; From 790fd54eda279f77b5609d046be25227f3da7224 Mon Sep 17 00:00:00 2001 From: Dominik Zarsky <43666286+Loupeznik@users.noreply.github.com> Date: Fri, 9 Aug 2019 21:52:33 +0200 Subject: [PATCH 062/116] syntax edited --- addons/jam/magwells_65x39.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/jam/magwells_65x39.hpp b/addons/jam/magwells_65x39.hpp index 57d60bea8..51f800d92 100644 --- a/addons/jam/magwells_65x39.hpp +++ b/addons/jam/magwells_65x39.hpp @@ -1,21 +1,22 @@ class CBA_65x39_MX { BI_mags[] = { "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_mag_Tracer", - "30Rnd_65x39_caseless_khaki_mag_Tracer", "30Rnd_65x39_caseless_khaki_mag", - "30Rnd_65x39_caseless_black_mag_Tracer", "30Rnd_65x39_caseless_black_mag", + "30Rnd_65x39_caseless_mag_Tracer", + "30Rnd_65x39_caseless_khaki_mag_Tracer", + "30Rnd_65x39_caseless_black_mag_Tracer" }; }; + class CBA_65x39_MX_XL { BI_mags[] = { "100Rnd_65x39_caseless_mag", - "100Rnd_65x39_caseless_mag_Tracer", - "100Rnd_65x39_caseless_khaki_mag_Tracer", "100Rnd_65x39_caseless_khaki_mag", - "100Rnd_65x39_caseless_black_mag_Tracer", "100Rnd_65x39_caseless_black_mag", + "100Rnd_65x39_caseless_mag_Tracer", + "100Rnd_65x39_caseless_khaki_mag_Tracer", + "100Rnd_65x39_caseless_black_mag_Tracer" }; }; From 6ebb9f55e3057fce18d76c638fab723611b273c9 Mon Sep 17 00:00:00 2001 From: Dominik Zarsky <43666286+Loupeznik@users.noreply.github.com> Date: Fri, 9 Aug 2019 23:17:14 +0200 Subject: [PATCH 063/116] sorted array values --- addons/jam/magwells_65x39.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/jam/magwells_65x39.hpp b/addons/jam/magwells_65x39.hpp index 51f800d92..74e76a422 100644 --- a/addons/jam/magwells_65x39.hpp +++ b/addons/jam/magwells_65x39.hpp @@ -1,10 +1,10 @@ class CBA_65x39_MX { BI_mags[] = { "30Rnd_65x39_caseless_mag", - "30Rnd_65x39_caseless_khaki_mag", - "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_mag_Tracer", + "30Rnd_65x39_caseless_khaki_mag", "30Rnd_65x39_caseless_khaki_mag_Tracer", + "30Rnd_65x39_caseless_black_mag", "30Rnd_65x39_caseless_black_mag_Tracer" }; }; @@ -12,10 +12,10 @@ class CBA_65x39_MX_XL { BI_mags[] = { "100Rnd_65x39_caseless_mag", - "100Rnd_65x39_caseless_khaki_mag", - "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_mag_Tracer", + "100Rnd_65x39_caseless_khaki_mag", "100Rnd_65x39_caseless_khaki_mag_Tracer", + "100Rnd_65x39_caseless_black_mag", "100Rnd_65x39_caseless_black_mag_Tracer" }; }; From 0bab13ca32ec186e26cfa7b07148a124c0e49344 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 12 Aug 2019 14:12:36 +0200 Subject: [PATCH 064/116] Bump to v3.12.1.190812 --- addons/main/script_version.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 3da0e5a89..6c2acf748 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 #define PATCHLVL 1 -#define BUILD 190805 +#define BUILD 190812 From 054b971bf01d189ff4183682ef4bef1c112d94d4 Mon Sep 17 00:00:00 2001 From: Loupeznik Date: Mon, 12 Aug 2019 17:08:28 +0200 Subject: [PATCH 065/116] Czech translation added --- addons/accessory/stringtable.xml | 9 +++++ addons/ai/stringtable.xml | 2 ++ addons/arrays/stringtable.xml | 1 + addons/common/stringtable.xml | 3 ++ addons/diagnostic/stringtable.xml | 7 ++++ addons/disposable/stringtable.xml | 10 ++++++ addons/events/stringtable.xml | 9 +++++ addons/hashes/stringtable.xml | 1 + addons/help/stringtable.xml | 7 ++-- addons/jam/stringtable.xml | 1 + addons/jr/stringtable.xml | 1 + addons/keybinding/stringtable.xml | 4 +++ addons/main/stringtable.xml | 4 +++ addons/modules/stringtable.xml | 52 +++++++++++++++++++++++++++++ addons/music/stringtable.xml | 1 + addons/network/stringtable.xml | 1 + addons/optics/stringtable.xml | 4 +++ addons/settings/stringtable.xml | 32 ++++++++++++++++++ addons/statemachine/stringtable.xml | 1 + addons/strings/stringtable.xml | 9 ++--- addons/ui/stringtable.xml | 18 ++++++++++ addons/vectors/stringtable.xml | 1 + addons/versioning/stringtable.xml | 1 + addons/xeh/stringtable.xml | 1 + optionals/legacy_jr/stringtable.xml | 1 + 25 files changed, 172 insertions(+), 9 deletions(-) diff --git a/addons/accessory/stringtable.xml b/addons/accessory/stringtable.xml index 27e14e1bb..1e90aea98 100644 --- a/addons/accessory/stringtable.xml +++ b/addons/accessory/stringtable.xml @@ -12,6 +12,7 @@ Community Base Addons - Fonctions des accessoires Community Base Addons - Aksesuar Fonksiyonları Community Base Addons - Funzioni per Accessori + Community Base Addons - Funkce doplňků Next rail item state @@ -24,6 +25,7 @@ Mode de l'accessoire sur rail suivant Sonraki ray aksesuarı Stato successivo dell'oggetto sulla slitta + Další režim doplňku na liště Cycles to the next mode available for your rail slot attachment @@ -36,6 +38,7 @@ Passe au prochain mode disponible de votre accessoire sur rail Ray aksesuarınızı sonraki moda geçirir Passa alla modalità successiva del tuo accessorio sulla slitta + Přepíná na další možný režim doplňku na liště Prev rail item state @@ -48,6 +51,7 @@ Mode de l'accessoire sur rail précèdent Önceki ray aksesuarı Stato precedente dell'oggetto sulla slitta + Předchozí režim doplňku na liště Cycles to the previous mode available for your rail slot attachment @@ -60,6 +64,7 @@ Passe au précèdent mode disponible de votre accessoire sur rail Ray aksesuarınızı önceki moda geçirir Passa alla modalità precedente del tuo accessorio sulla slitta + Přepíná na předchozí možný režim doplňku na liště Next optics state @@ -72,6 +77,7 @@ Mode de l'optique suivant Sonraki nişangah modu Stato successivo dell'ottica + Další režim zaměřovače Cycles to the next mode available for your optics slot attachment @@ -84,6 +90,7 @@ Passe au prochain mode disponible de votre optique Varolan nişangahınızı sonraki moduna geçirir Passa alla modalità successiva della tua ottica + Přepíná na další možný režim doplňku slotu pro zaměřovač Prev optics state @@ -96,6 +103,7 @@ Mode de l'optique sur rail précèdent Önceki nişangah modu Stato precedente dell'ottica + Předchozí režim zaměřovače Cycles to the previous mode available for your optics slot attachment @@ -108,6 +116,7 @@ Passe au précèdent mode disponible de votre optique Varolan nişangahınızı önceki moduna geçirir Passa alla modalità precedenta della tua ottica + Přepíná na předchozí možný režim doplňku slotu pro zaměřovač diff --git a/addons/ai/stringtable.xml b/addons/ai/stringtable.xml index 93c0042b7..9dbecdbbf 100644 --- a/addons/ai/stringtable.xml +++ b/addons/ai/stringtable.xml @@ -12,10 +12,12 @@ Community Base Addons - Sztuczna Inteligencja Community Base Addons - Yapay Zeka Community Base Addons - Intelligenza Artificiale + Community Base Addons - Umělá inteligence AI Building Position KI Gebäudeposition + Poloha stavby AI diff --git a/addons/arrays/stringtable.xml b/addons/arrays/stringtable.xml index f6bebd0bd..afe94eb32 100644 --- a/addons/arrays/stringtable.xml +++ b/addons/arrays/stringtable.xml @@ -12,6 +12,7 @@ Community Base Addons - Tablice Community Base Addons - Diziler Community Base Addons - Array + Community Base Addons - Pole diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 49c3f8266..426dbfdc6 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -12,6 +12,7 @@ Community Base Addons - Ogólne Komponenty Community Base Addons - Ortak Bileşenler Community Base Addons - Componenti Comuni + Community Base Addons - Společná součást You must first start a mission. @@ -21,6 +22,7 @@ Önce bir görev başlatmalısınız. ミッションを開始しておく必要があります。 Prima deve far partire una missione. + První musíte zapnout misi CBA Weapons @@ -28,6 +30,7 @@ CBA Bronie Armi CBA CBA 武器 + Zbraně CBA diff --git a/addons/diagnostic/stringtable.xml b/addons/diagnostic/stringtable.xml index e8aeaad6f..0fc507f54 100644 --- a/addons/diagnostic/stringtable.xml +++ b/addons/diagnostic/stringtable.xml @@ -12,6 +12,7 @@ Community Base Addons - Diagnostics Community Base Addons - Teşhis Community Base Addons - Diagnostica + Community Base Addons - Diagnostika Extended Debug Console @@ -24,6 +25,7 @@ Rozszerzona Konsola Debugowania Geliştirilmiş Debug Konsolu Console debug estesa + Rozšířená ladící konzole Previous Statement @@ -36,6 +38,7 @@ Poprzednie polecenie Önceki İfade Espressione Prec. + Předchozí zpráva Next Statement @@ -48,6 +51,7 @@ Następne polecenie Sonraki İfade Espressione Succ. + Následující zpráva Target Exec @@ -60,6 +64,7 @@ Cible Exec Hedefte Çalıştır Esegui Remoto + Cílový exec Enable Target Debugging @@ -72,6 +77,7 @@ Activer le débogage de la cible Hedefte Çalıştırmayı Aktifleştir Attiva il debug remoto + Zapnout cílové ladění [CBA] Allows remote target debugging. Requires Debug Console. @@ -84,6 +90,7 @@ [CBA] Permet le débogage de la cible distante. Nécessite la console de débogage. [CBA] Başka hedefte çalıştırmayı aktifleştirir. Debug konsolu gerektirir. [CBA] Abilita il debug remoto. Richiede la console di debug. + [CBA] Povoluje ladění vzdáleného cíle. Vyžaduje ladící konzoli. diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 3f0447847..804fee5cc 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -5,51 +5,61 @@ Community Base Addons - Disposable Weapons Community Base Addons - Einwegwaffen Community Base Addons - 使い捨て武器 + Community Base Addons - Jednorázové zbraně Drop Used Disposable Launcher Benutzten Einwegwerfer ablegen 使った使い捨てランチャーを落とす + Odhodit použitý jednorázový raketomet Never Niemals 行わない + Nikdy Don't automatically drop the used disposable launcher. Benutzten Einwegwerfer nicht automatisch ablegen. 使った使い捨てランチャーを自動的に落とさないようにします。 + Automaticky neodhazovat použitý jednorázový raketomet. AI Only Nur KI AI のみ + Pouze AI Only AI drops the used disposable launcher. Nur KI legt den benutzten Einwegwerfer ab. AI のみ使った使い捨てランチャーを落とすようにします。 + Pouze AI odhodí použitý jednorázový raketomet. Selected Another Weapon Andere Waffe ausgewählt 別の武器が選択後 + Vybrána jiná zbraň Automatically drop the used disposable launcher as soon as another weapon is selected. Benutzten Einwegwerfer automatisch ablegen, sobald eine andere Waffe ausgewählt wurde. 他の武器を選択すると即時に使った使い捨てランチャーを自動的に落とすようにします。 + Automaticky odhodit použitý jednorázový raketomet, jakmile je zvolena jiná zbraň. Replace Disposable Launcher Einwegwerfer ersetzten 使い捨てランチャーを置換 + Vyměnit jednorázový raketomet If enabled, disposable launchers can only be used once. Ammunition for disposable launchers in containers and vehicles will be replaced with loaded disposable launchers. If disabled, disposable launchers can be reloaded after use. Wenn aktiviert, dann können Einwegwerfer nur einmal benutzt werden. Munition für Einwegwerfer in Kisten und Fahrzeugen wird durch geladene Einwegwerfer ersetzt. Wenn deaktiviert, dann können Einwegwerfer nach der Benutzung nachgeladen werden. 有効化すると、使い捨てランチャーは一度のみ使用できます。コンテナ内にある使い捨てランチャーは装填された使い捨てランチャーに置き換えられます。無効化すると、使用後に使い捨てランチャーをリロードできます。 + Pokud je tato možnost zapnuta, jednorázové raketomety mohou být použity pouze jednou. Munice pro jednorázové raketomety v bednách a vozidlech budou vyměněny za nabité jednorázové raketomety. Pokud je tato možnost vypnuta, jednorázové raketomety mohou být přebity po použití. diff --git a/addons/events/stringtable.xml b/addons/events/stringtable.xml index 20adea2d1..fb4026206 100644 --- a/addons/events/stringtable.xml +++ b/addons/events/stringtable.xml @@ -12,54 +12,63 @@ Community Base Addons - Zdarzenia Community Base Addons - Durumlar Community Base Addons - Eventi + Community Base Addons - Události Weapon Repetition Mode Repetierwaffe laden Tryb powtarzania strzału 武器反復モード + Mód opakování zbraně Mode of bolting or pumping weapons. Art eine Waffe zu repetieren. Tryb przeładowania/ryglowania broni po wystrzale. ボルト、またはポンプ式武器のモードを決定します。 + Mód natahování nebo pumpování zbraní. Leave Optics View Optikansicht verlassen Opuszczenie optyki 照準画面を離れる + Opustit pohled optiky Bolt or rack weapon by leaving optics view. Waffe beim Verlassen der Optikansicht repetieren. Przeładowanie/ryglowanie broni nastąpi po opuszczeniu widoku optyki. ボルトかポンプ動作時は照準画面から離れます + Natáhnout zbraň opuštěním pohledu optiky. Release Trigger Abzug losslassen Puszczenie spustu トリガー解放時 + Pustit spoušť Bolt or rack weapon by releasing trigger (hold trigger to prevent immediate action). Waffe beim Loslassen des Abzugs repetieren (Abzug halten, um Repetieren zu verzögern). Przeładowanie/ryglowanie nastąpi po puszczeniu spustu (przytrzymaj spust aby nie przełdowywać). トリガーを離してボルトかポンプ動作を行います。(トリガー長押しで即時動作を防止) + Natáhnout zbraň puštěním spouště (podržte spoušť k zabránění okamžitému natáhnutí zbraně). Press Trigger Abzug betätigen Wciśnięcie spustu トリガー引いた時 + Zmáčknout spoušť Bolt or rack weapon by pressing the trigger again. Waffe beim erneuten Betätigen des Abzugs repetieren. Przeładowanie/ryglowanie nastąpi po ponownym wciśnięciu spustu. トリガーを再度引いてボルトかポンプ動作を行います。 + Natáhnout zbraň dalším zmáčkutím spouště. diff --git a/addons/hashes/stringtable.xml b/addons/hashes/stringtable.xml index f5eee73b3..f34d2bb57 100644 --- a/addons/hashes/stringtable.xml +++ b/addons/hashes/stringtable.xml @@ -12,6 +12,7 @@ Community Base Addons - Hashes Community Base Addons - Hashler Community Base Addons - Hash + Community Base Addons - Hashe diff --git a/addons/help/stringtable.xml b/addons/help/stringtable.xml index 1d6a2e130..daf8c9a98 100644 --- a/addons/help/stringtable.xml +++ b/addons/help/stringtable.xml @@ -13,12 +13,13 @@ Community Base Addons - Aide Community Base Addons - Yardım Community Base Addons - Aiuto + Community Base Addons - Pomoc Keybindings Tastendruckzuweisung Keybindings - Keybindings + Klávesy Назначения клавиш Tasti Klawisze @@ -33,7 +34,7 @@ Credits Credits Credits - Credits + Tvůrci Кредиты Riconoscimenti Twórcy @@ -48,7 +49,7 @@ Addons Addons Addons - Addons + Addony Дополнения Addons Addons diff --git a/addons/jam/stringtable.xml b/addons/jam/stringtable.xml index c95e7fabb..bb8a60464 100644 --- a/addons/jam/stringtable.xml +++ b/addons/jam/stringtable.xml @@ -8,6 +8,7 @@ Community Base Addons - Munitions et Chargeurs joints Community Base Addons - Birleştirilmiş Cephane Şarjörleri Community Base Addons - 統合的弾倉 + Community Base Addons - Společné zásobníky a munice Caliber: 7.62x51 mm Tracer - Green<br/>Rounds: 150 diff --git a/addons/jr/stringtable.xml b/addons/jr/stringtable.xml index 1b1ca74cf..6af9ae0e6 100644 --- a/addons/jr/stringtable.xml +++ b/addons/jr/stringtable.xml @@ -12,6 +12,7 @@ Community Base Addons - Rails d'accessoires Community Base Addons - Birleştirilmiş Raylar Community Base Addons - Joint Rails + Community Base Addons - Joint Rails Sound Suppressor MG diff --git a/addons/keybinding/stringtable.xml b/addons/keybinding/stringtable.xml index 73a01124a..cd7aa7778 100644 --- a/addons/keybinding/stringtable.xml +++ b/addons/keybinding/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Configurations des touches Community Base Addons - Klavye Tuşları Community Base Addons - Configurazione Tasti + Community Base Addons - Klávesy Configure Addons @@ -26,6 +27,7 @@ Configurer les addons Eklentileri Düzenle Configura gli addon + Konfigurovat addony Configure Base @@ -39,6 +41,7 @@ Configurer la base Temeli Düzenle Configura il gioco base + Konfigurovat základ Unknown Key %1 @@ -52,6 +55,7 @@ Touche inconnue %1 Bilinmeyen Tuş %1 "%1" è un tasto sconosciuto + Neznámá klávesa %1 diff --git a/addons/main/stringtable.xml b/addons/main/stringtable.xml index 0fba35435..adcd55a6e 100644 --- a/addons/main/stringtable.xml +++ b/addons/main/stringtable.xml @@ -13,6 +13,7 @@ Zespół CBA CBA Takımı Squadra CBA + CBA tým https://www.github.com/CBATeam/CBA_A3 @@ -42,6 +43,7 @@ Community Base Addons - Główny Komponent Community Base Addons - Ana Bileşenler Community Base Addons - Componente Principale + Community Base Addons - Hlavní součást Community Base Addons - Optional Component @@ -55,6 +57,7 @@ Community Base Addons - Komponent Opcjonalny Community Base Addons - Opsiyonel Bileşenler Community Base Addons - Componente Opzionale + Community Base Addons - Volitelná součást ADDON: @@ -67,6 +70,7 @@ ADDON: EKLENTİ: ADDON: + ADDON: diff --git a/addons/modules/stringtable.xml b/addons/modules/stringtable.xml index 5d6d7cff0..41c43854e 100644 --- a/addons/modules/stringtable.xml +++ b/addons/modules/stringtable.xml @@ -12,6 +12,7 @@ Community Base Addons - Composant des modules Community Base Addons - Modüller Community Base Addons - Moduli + Community Base Addons - Moduly CBA Modules @@ -24,6 +25,7 @@ Modules de CBA CBA Modülleri CBA - Moduli + CBA Moduly Attack @@ -36,6 +38,7 @@ Attaquer Saldır Attaccare + Útok Attack Location Type @@ -48,6 +51,7 @@ Type d'emplacement de l'attaque Saldırı Konum Tipi Tipo di posizione per l'attacco + Typ lokace útoku Set what kind of object is being passed as the center point @@ -60,6 +64,7 @@ Définir quel type d'objet est passé en tant que point central Merkez noktası olarak nasıl bir objenin verildiğini gör Scegliere quale oggetto passare al punto centrale + Určit, jaký typ objektu je nastaven jako centrální bod Module Position @@ -72,6 +77,7 @@ Position du module Modül Konumu Posizione del modulo + Pozice modulu Object/Location @@ -84,6 +90,7 @@ Objet/Lieu Obje/Konum Posizione oggetto + Objekt/Lokace Group @@ -96,6 +103,7 @@ Groupe Grup Gruppo + Skupina Array @@ -108,6 +116,7 @@ Tableau Liste Array + Pole Marker @@ -120,6 +129,7 @@ Marqueur İşaret Indicatore + Značka Task @@ -132,6 +142,7 @@ Tâche Görev Incarico + Úkol Set Position @@ -144,6 +155,7 @@ Configurer la position Konum Belirle Posiziona + Nastavit pozici Attack Position @@ -156,6 +168,7 @@ Position de l'attaque Saldırı Konumu Posizione per l'attacco + Pozice útoku Enter an array with brackets or name without quotes @@ -168,6 +181,7 @@ Entrez un tableau avec des parenthèses ou un nom sans guillemets Parantezler olmadan bir liste ya da tırnaklar olmadan bir isim girin Inserire un array in parentesi quadre o nome in doppi apici. + Zadejte pole hodnot se závorkami nebo jméno bez závorek Search Radius @@ -180,6 +194,7 @@ Rayon de recherche Arama Menzili Raggio di ricerca + Rádius hledání Enter a number for size of the radius to search @@ -192,6 +207,7 @@ Entrez un nombre pour la taille du rayon à rechercher Aranıcak alanın çapı için bir sayı girin Immettere un numero per la dimensione del raggio in cui cercare + Vložte číslo pro velikost rádiu hledání Sync to leader of group to attack a parsed location @@ -204,6 +220,7 @@ Synchroniser avec le chef du groupe pour attaquer un emplacement désigné Bir grup liderine senkronize ederek taranmış bir konuma saldırtın Sincronizza con un capogruppo per attaccare una posizione designata. + Přikázat veliteli skupiny zaútočit na danou lokaci Allow Override @@ -216,6 +233,7 @@ Autoriser l'écrasement Üstüne Yazmayı Etkinleştir Permettere Sovrascrittura + Povolit přepsání Allow the module to remove old waypoints and assign an attack waypoint @@ -228,6 +246,7 @@ Autoriser le module à supprimer les anciens points de passage et attribuer un points de passage d'attaque Modülün eski waypoint'leri silip saldırı waypoint'i koymasına izin ver Permette al modulo di togliere waypoint precedenti e assegnarne uno di attacco. + Povolit modulu odstranit staré waypointy a přiřadit waypoint k útoku Defend @@ -240,6 +259,7 @@ Défendre Savun Difendere + Bránit Defend Position Type @@ -252,6 +272,7 @@ Type d'emplacement de la défense Savunma Konum Tipi Tipo di posizione per la difesa + Typ pozice útoku Set what kind of object is being passed as the center point @@ -264,6 +285,7 @@ Définir quel type d'objet est passé comme point central Merkez noktası olarak nasıl bir objenin verildiğini gör Scegliere quale oggetto passare al punto centrale + Určit, jaký typ objektu je nastaven jako centrální bod Defend Position @@ -276,6 +298,7 @@ Position de la défense Konumu Savun Difendere Posizione + Bránit pozici Enter an array with brackets or name without quotes @@ -288,6 +311,7 @@ Entrez un tableau avec des parenthèses ou un nom sans guillemets Parantezler olmadan bir liste ya da tırnaklar olmadan bir isim girin Inserire un array in parentesi quadre o nome in doppi apici. + Zadejte pole hodnot se závorkami nebo jméno bez závorek Defend Radius @@ -300,6 +324,7 @@ Rayon de la défense Belli Bir Çapı Savun Raggio di Difesa + Rádius obrany The max distance to defend from the center point @@ -312,6 +337,7 @@ La distance maximale à défendre depuis le point central Merkez noktadan savunulacak maksimum uzaklık Distanza massima dal punto centrale entro cui difendere. + Maximální vzdálenost obrany od centrálního bodu Building Size Threshold @@ -324,6 +350,7 @@ Seuil de taille du bâtiment Bina Boyutu Limiti Soglia Dimensione Edificio + Práh velikosti stavby Smaller the number the more buildings available @@ -336,6 +363,7 @@ Plus le nombre est petit, plus il y'a de bâtiments disponibles Sayı küçüldükçe daha fazla sayıda bina mümkün olur Più piccolo il numero più edifici saranno disponibili + Čím menší číslo tím více budov je k dispozici Patrol Chance @@ -348,6 +376,7 @@ Possibilité de patrouille Devriye İhtimali Probabilità di pattugliare + Šance hlídky Chance for each unit to patrol instead of garrison @@ -360,6 +389,7 @@ Possibilité pour chaque unité de patrouiller au lieu d'être en garnison Devriye İhtimali Probabilità per ogni unità di pattugliare invece che presidiare. + Šance, že bude jednotka hlídkovat (místo tvorby opevnění) Hold Chance @@ -372,6 +402,7 @@ Chance de tenir Tutma İhtimali Probabilità di tenuta + Šance držení Chance for each unit to hold their garrison in combat @@ -384,6 +415,7 @@ Possibilité pour chaque unité de tenir sa garnison au combat Birimlerin çatışma sırasında konumlarını koruma şansı Probabilità per ogni unità di tenere il presidio durante il combattimento. + Šance, že bude jednotka držet své opevnění v boji Sync to leader of group to defend a parsed location @@ -396,6 +428,7 @@ Synchroniser avec le chef du groupe pour défendre un emplacement désigné Bir grup liderine senkronize ederek taranmış bir konumu savundurun Sincronizza con un capogruppo per difendere una posizione designata. + Přikázat veliteli skupiny bránit danou lokaci Patrol @@ -408,6 +441,7 @@ Patrouille Devriye Pattugliare + Hlídka Patrol Center Type @@ -420,6 +454,7 @@ Type d'emplacement de la patrouille Devriye Merkez Tipi Tipo del centro del pattugliamento + Typ centra hlídky Set what kind of object is being passed as the center point @@ -432,6 +467,7 @@ Définir quel type d'objet est passé comme point central Merkez noktası olarak nasıl bir objenin verildiğini gör Imposta il tipo di oggetto che viene usato come punto centrale. + Určit, jaký typ objektu je nastaven jako centrální bod Center Point @@ -444,6 +480,7 @@ Point central Merkez Nokta Punto Centrale + Centrální bod Enter an array with brackets or name without quotes @@ -456,6 +493,7 @@ Entrez un tableau avec des parenthèses ou un nom sans guillemets Parantezler olmadan bir liste ya da tırnaklar olmadan bir isim girin Inserire un array in parentesi quadre o nome in doppi apici. + Zadejte pole hodnot se závorkami nebo jméno bez závorek Patrol Radius @@ -468,6 +506,7 @@ Rayon de patrouille Devriye Çapı Raggio di Pattugliamento + Rádius hlídky The distance to patrol from the center point @@ -480,6 +519,7 @@ La distance à parcourir en patrouille depuis le point central Merkez noktadan devriyeye çıkılacak uzaklık La distanza da pattugliare dal punto centrale. + Nastavit vzdálenost od centrálního bodu k hlídce Waypoint Count @@ -492,6 +532,7 @@ Nombre de points de passage Waypoint Sayısı Numero di destinazioni + Počet waypointů The amount of waypoints to create @@ -504,6 +545,7 @@ La quantité de points de passage à créer Oluşturulacak Waypoint Sayısı Quantità di destinazioni da creare. + Kolik waypointů bude vytvořeno Waypoint Type @@ -516,6 +558,7 @@ Type de point de passage Waypoint Tipi Tipo di destinazioni + Typ waypointu The type of waypoint to be used @@ -528,6 +571,7 @@ Le type de point de passage à utiliser Kullanılacak waypoint tipi Il tipo di destinazione da usare. + Typ waypointu, který bude použit Move @@ -540,6 +584,7 @@ Sé déplacer Hareket Et Muovere + Pohyb Seek and Destroy @@ -552,6 +597,7 @@ Rechercher et détruire Bul ve Yok Et Cercare e Distruggere + Najít a zničit Loiter @@ -564,6 +610,7 @@ Flâner Bekle Indulgiare + Postávat Code to Execute @@ -576,6 +623,7 @@ Code à exécuter Çalıştırılacak Kod Codice da eseguire + Kód k vykonání Any code to run at waypoints @@ -588,6 +636,7 @@ Tout code à exécuter aux points de passage Waypoint'lerde çalıştırılacak herhangi kod Codice da eseguire alla destinazione. + Jakýkoliv kód, který bude vykonán na waypointech Timeout @@ -600,6 +649,7 @@ Pause Zaman Aşımı Tempo di attesa + Přestávka [Min, Med, Max] Time to wait at waypoints @@ -612,6 +662,7 @@ [Min, Moy, Max] Temps d'attente aux points de passage [Minimum, Orta, Maksimum] Waypoint'lerde beklenecek zaman [Min, Med, Mass] Tempo di attesa alla destinazione. + [Min., Stř., Max.] Čas čekání na waypointech Sync to leader of group to patrol a parsed location @@ -624,6 +675,7 @@ Synchroniser avec le chef du groupe pour défendre un emplacement désigné Bir grup liderine senkronize ederek taranmış bir konumu devriye ettirin Sincronizza con un capogruppo per pattugliare una posizione designata. + Přikázat veliteli skupiny hlídkovat v dané lokaci diff --git a/addons/music/stringtable.xml b/addons/music/stringtable.xml index 32af1e386..1311af89a 100644 --- a/addons/music/stringtable.xml +++ b/addons/music/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Muzyka Community Base Addons - Müzik Community Base Addons - Musica + Community Base Addons - Hudba diff --git a/addons/network/stringtable.xml b/addons/network/stringtable.xml index 9f15ffb25..67ee5d2ce 100644 --- a/addons/network/stringtable.xml +++ b/addons/network/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Sieć Community Base Addons - Ağ Community Base Addons - Rete + Community Base Addons - Síť diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index d70a5b914..2d75f0fc0 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -7,6 +7,7 @@ Community Base Addons - Optyka Community Base Addons - Ottiche Community Base Addons - 照準器 + Community Base Addons - Optika Use picture in picture optics @@ -14,14 +15,17 @@ ピクチャー イン ピクチャー照準器を使う Używaj optyki typu Obraz w obrazie (PIP) Usa ottiche on Picture-in-Picture + Používat PiP (obraz-v-obrazu) optiky Toggle Reticle Absehen umschalten + Zapnout retikulum Manually switch the reticle of the optic. Absehen der Optik manuell umschalten. + Manuálně přepnout retikulum optiky diff --git a/addons/settings/stringtable.xml b/addons/settings/stringtable.xml index e378343d7..c3fc440ce 100644 --- a/addons/settings/stringtable.xml +++ b/addons/settings/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Configurations des composants Community Base Addons - Ayarlar Community Base Addons - Impostazioni + Community Base Addons - Nastavení Configure Addons @@ -26,6 +27,7 @@ Configurer les addons Eklenti Ayarları Configura gli addon + Konfigurovat addony Configure Base @@ -39,6 +41,7 @@ Configurer la base Oyun Ayarları Configura il gioco base + Konfigurovat základ Addon Options @@ -52,6 +55,7 @@ Ustawienia addonów Eklenti Ayarları Opzioni degli addon + Možnosti addonu Adjust addon settings. @@ -61,6 +65,7 @@ Eklenti ayarlarını değiştir. アドオンの設定を調整します。 Aggiusta le impostazioni per gli addon + Upravit nastavení addonu. Addon Options... @@ -74,6 +79,7 @@ Ustawienia addonów... Eklenti Ayarları... Opzioni per gli addon ... + Možnosti addonu... Server @@ -87,6 +93,7 @@ Serwer Sunucu Server + Server Look at the server's settings. Log in as admin to change. @@ -100,6 +107,7 @@ Zobacz ustawienia serwera. Zaloguj się jako administrator aby zmienić. Sunucu ayarlarına bak. Değiştirmek için admin olarak giriş yapın. Visualizza le impostazioni del server. Entra come amministratore per cambiarle. + Podívejte se na nastavení serveru. Přihlaste se jako admin pro změnu. Mission @@ -113,6 +121,7 @@ Mission Görev Missione + Mise Look at the mission's settings. @@ -126,6 +135,7 @@ Zobacz ustawienia misji. Görev'in ayarlarına bak. Visualizza le impostazioni della missione. + Podívejte se na nastavení mise Edit the mission's settings. @@ -139,6 +149,7 @@ Edytuj ustawienia misji. Görev'in ayarlarını değiştir. Cambia le impostazioni della missione. + Upravit nastavení mise. Client @@ -152,6 +163,7 @@ Client Oyuncu Client + Klient Edit your local settings. @@ -165,6 +177,7 @@ Edytuj swoje lokalne ustawienia. Yerel ayarlarınızı değiştirin. Cambia le tue impostazioni locali. + Upravit vaše lokální nastavení. Local @@ -178,6 +191,7 @@ Local Yerel Locale + Lokální Save current settings as preset. @@ -191,6 +205,7 @@ Zapisz obecne ustawienia do szablonu. Şuanki ayaları şablon olarak kaydet. Salva le impostazioni attuali come predefinite + Uložit nynější nastavení jako předvolbu. Load settings from preset. @@ -204,6 +219,7 @@ Załaduj ustawienia z szablonu. Şablondan ayarları yükle. Carica le impostazioni da quelle predefinite + Načíst nastavení z předvolby. Import @@ -217,6 +233,7 @@ Import Import Importa + Import Import settings from clipboard. @@ -230,6 +247,7 @@ Import ustawień ze schowka. Ayarları panodan çek. Importa le impostazioni dagli appunti. + Importovat nastavení ze schránky. Export @@ -243,6 +261,7 @@ Eksport Export Esporta + Export Export settings to clipboard. @@ -256,6 +275,7 @@ Eksport ustawień do schowka. Ayarları panoya kopyala. Esporta le impostazioni negli appunti. + Exportovat nastavení do schránky. Reset to default value. @@ -269,6 +289,7 @@ Przywróć domyślne wartości. Varsayılan ayarlara geri dön. Reimposta ai valori originali. + Resetovat na původní hodnotu. Overwrite\nClients @@ -282,6 +303,7 @@ Nadpisz\nKlienci Oyunculara\nAyar Zorla Sovrascrive\ni client + Přepsat \nClients Overwrite\nMission @@ -295,6 +317,7 @@ Nadpisz\nMisja Göreve\nAyar Zorla Sovrascrive\nla missione + Přepsat \nMission Overwrite\nServer @@ -308,6 +331,7 @@ Nadpisz\nSerwer Sunucuya\nAyar Zorla Sovrascrive\nil server + Přepsat \nServer This setting applies. @@ -317,6 +341,7 @@ Bu ayar geçerli. 設定を適用します。 Prevale questa impostazione. + Toto nastavení je aktuální. This setting applies after the next mission restart. @@ -326,6 +351,7 @@ Bu ayar oyun baştan başladıktan sonra geçerli olur. この設定は次のミッション開始後に適用されます。 Questa impostazione sarà valida dopo il riavvio della missione. + Toto nastavení bude aplikováno po restartu mise. This setting is overwritten by the clients. @@ -339,6 +365,7 @@ Ce paramètre est écrasé par les clients. 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. @@ -352,6 +379,7 @@ Ce paramètre est écrasé par la mission. 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. @@ -365,6 +393,7 @@ Ce paramètre est écrasé par le serveur. Sunucu tarafından bu ayarın üstüne yazılmış. Il server sovrascrive questa impostazione. + Toto nastavení je přepsáno serverem. This setting is overwritten by the clients and only applies to the server. @@ -378,6 +407,7 @@ Ce paramètre est écrasé par les clients et s'applique seulement au serveur. Oyuncular tarafından bu ayarın üstüne yazılmış, ayar sadece sunucuda geçerli. Questa impostazione è sovrascritta dai client e si applica solo al server. + Toto nastavení je přepsáno klienty a platí pouze na serveru. Copy to clipboard @@ -390,6 +420,7 @@ Skopiuj do schowka Panoya kopyala Copia negli appunti + Kopírovat do schránky Show default values: @@ -402,6 +433,7 @@ Pokaż domyślnę wartości: Varsayılan değerleri göster: Mostra i valori originali: + Ukázat původní hodnoty: diff --git a/addons/statemachine/stringtable.xml b/addons/statemachine/stringtable.xml index ed0810c30..0b03c543c 100644 --- a/addons/statemachine/stringtable.xml +++ b/addons/statemachine/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Composant machine d'état Community Base Addons - Durum Makinası Community Base Addons - Macchina a stati finiti + Community Base Addons - State Machine diff --git a/addons/strings/stringtable.xml b/addons/strings/stringtable.xml index 5f265a2c0..6cc6cd25a 100644 --- a/addons/strings/stringtable.xml +++ b/addons/strings/stringtable.xml @@ -13,10 +13,11 @@ Community Base Addons - Textes Community Base Addons - Yazılar Community Base Addons - Stringhe + Community Base Addons - Texty . - , + . , , , @@ -31,12 +32,8 @@ , - + , . - - - - , , , diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 553894b55..cc4e0b61e 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Interfejs Użytkownika Community Base Addons - Kullanıcı Arayüzü Community Base Addons - Interfaccia utente + Community Base Addons - Uživatelské prostředí Progress Bar @@ -24,6 +25,7 @@ Pasek postępu Yükleme Çubuğu Barra di avanzamento + Ukazatel průběhu Position of the progress bar. @@ -35,6 +37,7 @@ Pozycja paska postępu. Yükleme çubuğunun konumu. Posizione della barra di avanzamento + Pozici ukazatele průběhu. CBA UI @@ -44,6 +47,7 @@ CBA UI CBA UI CBA IU + CBA UI Store server passwords @@ -53,6 +57,7 @@ Sunucu şifrelerini kaydet サーバーのパスワードを保存 Salva le password per i server + Ukládat hesla serveru Setting to store the passwords entered when connecting to a multiplayer server. @@ -62,6 +67,7 @@ Çok oyunculu bir sunucuya bağlanırken girilen şifreleri kaydetme ayarı. マルチプレイヤーのサーバーへ接続時に入力されたパスワードの保存設定を行います。 Impostazione per salvare le password immesse quando ci si collega a server multiplayer. + Uloží zadané heslo, když se připojujete k multiplayerovému serveru. Save passwords @@ -71,6 +77,7 @@ Şifreleri kaydet パスワードを保存 Salva le password + Ukládat hesla Passwords are stored when connecting to a multiplayer server. @@ -80,6 +87,7 @@ Çok oyunculu bir sunucuya girerken şifreler kaydedilir. マルチプレイヤーのサーバーへ接続時にパスワードを保存します。 Quando ci si connette ad un server multiplayer, le password verranno salvate. + Hesla jsou uložena, když se připojujete k multiplayerovému serveru. Do not save passwords @@ -89,6 +97,7 @@ Şifreleri kaydetme パスワードを保存しない Non salvare le password + Neukládat hesla Passwords are not stored when connecting to a multiplayer server. Already stored passwords will not be automatically entered. @@ -98,6 +107,7 @@ Çok oyunculu bir sunucuya girerken şifreler kaydedilmez. Zaten kayıtlı olan şifreler otomatik olarak doldurulmaz. マルチプレイヤーのサーバーへ接続時にパスワードを保存しません。既に保存されているパスワードも自動的に入力されません。 Quando ci si collega ad un server multiplayer, le password non verranno salvate. Le password precedentemente salvate non verranno immesse automaticamente. + Hesla nejsou ukládána, když se připojujete k multiplayerovému serveru. Hesla, která již byla uložena, nebudou automaticky zadávána. Delete passwords @@ -107,6 +117,7 @@ Şifreleri sil パスワードを削除 Cancella le password + Smazat hesla Passwords are not stored when connecting to a multiplayer server. Already stored passwords are deleted from the profile. @@ -116,6 +127,7 @@ Çok oyunculu bir sunucuya girerken şifreler kaydedilmez. Zaten kayıtlı olan şifreler bilgisayardan silinir. マルチプレイヤーのサーバーへ接続時にパスワードを保存しません。既に保存されているパスワードはプロフィールから削除します。 Quando ci si collega ad un server multiplayer, le password non verranno salvate. Non saranno usate password precedentemente salvate. + Hesla nejsou ukládána, když se připojujete k multiplayerovému serveru. Hesla, která již byla uložena, jsou smazána z profilu. Notification @@ -123,6 +135,7 @@ Powiadomienie 通知 Notifica + Upozornění Textual feedback to the player. @@ -130,6 +143,7 @@ Tekstowa informacja dla gracza. 文章でプレイヤーに通知します。 Notifica testuale al giocatore. + Textová zpětná vazba hráči. Show all missions @@ -137,6 +151,7 @@ 全ミッションを表示 Pokaż wszystkie misje Mostra tutte le missioni + Ukázat všechny mise Show custom missions @@ -144,12 +159,15 @@ カスタム ミッションを表示 Pokaż własne/wgrane misje Mostra missioni custom + Ukázat vlastní mise Notification Lifetime + Doba trvání upozornění Notification display duration in seconds. + Jak dlouho bude upozornění ukázáno (v sekundách). diff --git a/addons/vectors/stringtable.xml b/addons/vectors/stringtable.xml index 7d786db8d..e94b121a0 100644 --- a/addons/vectors/stringtable.xml +++ b/addons/vectors/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Wektory Community Base Addons - Vektörler Community Base Addons - Vettori + Community Base Addons - Vektory diff --git a/addons/versioning/stringtable.xml b/addons/versioning/stringtable.xml index 58a9324b2..162d26ef2 100644 --- a/addons/versioning/stringtable.xml +++ b/addons/versioning/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Version Community Base Addons - Versiyonlama Community Base Addons - Versionamento + Community Base Addons - Verzování diff --git a/addons/xeh/stringtable.xml b/addons/xeh/stringtable.xml index 7c182bc08..7cc05fb56 100644 --- a/addons/xeh/stringtable.xml +++ b/addons/xeh/stringtable.xml @@ -13,6 +13,7 @@ Community Base Addons - Gestionnaires d'évènement étendus Community Base Addons - Geliştirmiş Durum İşlenimi Community Base Addons - Gestore di Eventi Esteso + Community Base Addons - Rozšířené ovladače událostí diff --git a/optionals/legacy_jr/stringtable.xml b/optionals/legacy_jr/stringtable.xml index 0d5c360ea..56eb5f605 100644 --- a/optionals/legacy_jr/stringtable.xml +++ b/optionals/legacy_jr/stringtable.xml @@ -4,6 +4,7 @@ Community Base Addons - Legacy Joint Rails Community Base Addons - Legacy-Joint Rails + Community Base Addons - Legacy Joint Rails From e5d17f18e59e9ace0e8838343ff13005559fb5ef Mon Sep 17 00:00:00 2001 From: Dominik Zarsky <43666286+Loupeznik@users.noreply.github.com> Date: Mon, 12 Aug 2019 17:26:16 +0200 Subject: [PATCH 066/116] Czech translation --- addons/common/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index 426dbfdc6..d830dc0c8 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -22,7 +22,7 @@ Önce bir görev başlatmalısınız. ミッションを開始しておく必要があります。 Prima deve far partire una missione. - První musíte zapnout misi + První musíte zapnout misi. CBA Weapons From 18e9c72084a542853c5ea79b3a027f05395a22fb Mon Sep 17 00:00:00 2001 From: Dominik Zarsky <43666286+Loupeznik@users.noreply.github.com> Date: Mon, 12 Aug 2019 17:33:41 +0200 Subject: [PATCH 067/116] Czech translation --- addons/settings/stringtable.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/settings/stringtable.xml b/addons/settings/stringtable.xml index c3fc440ce..6f935a7e3 100644 --- a/addons/settings/stringtable.xml +++ b/addons/settings/stringtable.xml @@ -135,7 +135,7 @@ Zobacz ustawienia misji. Görev'in ayarlarına bak. Visualizza le impostazioni della missione. - Podívejte se na nastavení mise + Podívejte se na nastavení mise. Edit the mission's settings. From 3435480f88aea451ce80d3fa59301ee08d193fb7 Mon Sep 17 00:00:00 2001 From: Dominik Zarsky <43666286+Loupeznik@users.noreply.github.com> Date: Mon, 12 Aug 2019 18:58:27 +0200 Subject: [PATCH 068/116] Czech translation fix --- addons/strings/stringtable.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/strings/stringtable.xml b/addons/strings/stringtable.xml index 6cc6cd25a..5677ad0e1 100644 --- a/addons/strings/stringtable.xml +++ b/addons/strings/stringtable.xml @@ -17,7 +17,7 @@ . - . + , , , , @@ -32,8 +32,12 @@ , - , + . + + + + , , , From 8fdf226bbd6cff61c427a554018ff8e60e74d057 Mon Sep 17 00:00:00 2001 From: Dominik Zarsky <43666286+Loupeznik@users.noreply.github.com> Date: Mon, 12 Aug 2019 18:58:37 +0200 Subject: [PATCH 069/116] Enhanced Czech translation --- addons/modules/stringtable.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/modules/stringtable.xml b/addons/modules/stringtable.xml index 41c43854e..3e66676a4 100644 --- a/addons/modules/stringtable.xml +++ b/addons/modules/stringtable.xml @@ -220,7 +220,7 @@ Synchroniser avec le chef du groupe pour attaquer un emplacement désigné Bir grup liderine senkronize ederek taranmış bir konuma saldırtın Sincronizza con un capogruppo per attaccare una posizione designata. - Přikázat veliteli skupiny zaútočit na danou lokaci + Synchronizovat s velitelem skupiny k útoku na danou lokaci Allow Override @@ -428,7 +428,7 @@ Synchroniser avec le chef du groupe pour défendre un emplacement désigné Bir grup liderine senkronize ederek taranmış bir konumu savundurun Sincronizza con un capogruppo per difendere una posizione designata. - Přikázat veliteli skupiny bránit danou lokaci + Synchronizovat s velitelem skupiny k obraně dané lokace Patrol @@ -675,7 +675,7 @@ Synchroniser avec le chef du groupe pour défendre un emplacement désigné Bir grup liderine senkronize ederek taranmış bir konumu devriye ettirin Sincronizza con un capogruppo per pattugliare una posizione designata. - Přikázat veliteli skupiny hlídkovat v dané lokaci + Synchronizovat s velitelem skupiny k hlídkování v dané lokaci From 2d8218dc87ffc53f64f0c3a948da15d01c2fbba8 Mon Sep 17 00:00:00 2001 From: jonpas Date: Thu, 15 Aug 2019 13:36:49 +0200 Subject: [PATCH 070/116] Rename to CBA_facewearList, Add example configs --- addons/common/fnc_randomizeFacewear.sqf | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/addons/common/fnc_randomizeFacewear.sqf b/addons/common/fnc_randomizeFacewear.sqf index 47dd56e09..ccea87093 100644 --- a/addons/common/fnc_randomizeFacewear.sqf +++ b/addons/common/fnc_randomizeFacewear.sqf @@ -4,7 +4,12 @@ Function: CBA_fnc_randomizeFacewear Description: Add config defined weighted random facewear to unit. - Uses same config as headgearList[]. + + CBA_facewearList[] = {}; // default: ignore and use facewear from BIS_fnc_unitHeadgear instead + CBA_facewearList[] = {"", 1}; // no facewear, delete and overwrite facewear from BIS_fnc_unitHeadgear + + // 40% no facewear, 30% balaclava, 30% bandana. Weighted randomization: Sum of propabilites must not necessarily equal 1. + CBA_facewearList[] = {"", 0.4, "G_Balaclava_blk", 0.3, "G_Bandanna_blk", 0.3}; Parameters: _unit - unit @@ -21,23 +26,25 @@ Author: commy2 ---------------------------------------------------------------------------- */ -params [["_unit", objNull]]; +params [["_unit", objNull, [objNull]]]; if (isNull _unit) exitWith { - TRACE_1("unit is null",_unit); + WARNING_1("Unit [%1] is null",_unit); false }; if (!local _unit || {!(_unit getVariable ["BIS_enableRandomization", true])}) exitWith {true}; -private _allowedFacewear = getArray (configFile >> "CfgVehicles" >> typeOf _unit >> "CBA_allowedFacewear"); +private _facewearList = getArray (configFile >> "CfgVehicles" >> typeOf _unit >> "CBA_facewearList"); -if (_allowedFacewear isEqualTo []) exitWith {true}; +if (_facewearList isEqualTo []) exitWith {true}; -private _facewear = selectRandomWeighted _allowedFacewear; +private _facewear = selectRandomWeighted _facewearList; if (_facewear == "") then { removeGoggles _unit; } else { _unit addGoggles _facewear; }; + +true From 25954957970796e67b0d2f2b9ffa4c5148bca8bd Mon Sep 17 00:00:00 2001 From: commy2 Date: Thu, 15 Aug 2019 19:34:00 +0200 Subject: [PATCH 071/116] add CONTACT SERVER ADMIN header to signature mismatch message --- addons/ui/CfgEventHandlers.hpp | 3 +++ addons/ui/XEH_preStart.sqf | 1 + addons/ui/fnc_initDisplayMessageBox.sqf | 16 ++++++++++++++++ addons/ui/stringtable.xml | 4 ++++ 4 files changed, 24 insertions(+) create mode 100644 addons/ui/fnc_initDisplayMessageBox.sqf diff --git a/addons/ui/CfgEventHandlers.hpp b/addons/ui/CfgEventHandlers.hpp index b71643828..6068cb851 100644 --- a/addons/ui/CfgEventHandlers.hpp +++ b/addons/ui/CfgEventHandlers.hpp @@ -38,4 +38,7 @@ class Extended_DisplayLoad_EventHandlers { class RscDisplayCurator { ADDON = QUOTE(_this call (uiNamespace getVariable 'FUNC(initDisplayCurator)')); }; + class RscMsgBox { + ADDON = QUOTE(_this call (uiNamespace getVariable 'FUNC(initDisplayMessageBox)')); + }; }; diff --git a/addons/ui/XEH_preStart.sqf b/addons/ui/XEH_preStart.sqf index 058fadded..daca03422 100644 --- a/addons/ui/XEH_preStart.sqf +++ b/addons/ui/XEH_preStart.sqf @@ -10,6 +10,7 @@ PREP(initDisplayRemoteMissions); PREP(initDisplayDiary); PREP(initDisplay3DEN); PREP(initDisplayCurator); +PREP(initDisplayMessageBox); PREP(preload3DEN); PREP(preloadCurator); diff --git a/addons/ui/fnc_initDisplayMessageBox.sqf b/addons/ui/fnc_initDisplayMessageBox.sqf new file mode 100644 index 000000000..6b5c9615e --- /dev/null +++ b/addons/ui/fnc_initDisplayMessageBox.sqf @@ -0,0 +1,16 @@ +#include "script_component.hpp" + +params ["_display"]; + +private _messageBox = _display displayCtrl IDC_MSG_BOX_MESSAGE; +private _message = ctrlText _messageBox; + +// This check has to work with all languages and without functions defined in mission namespace. +private _isSignatureMissingMessage = _message find (with uiNamespace do { + [localize "str_signature_missing", "%s"] call CBA_fnc_split +} select 1) != -1; + +if (_isSignatureMissingMessage) then { + private _messageBoxHeader = _display displayCtrl 11001; + _messageBoxHeader ctrlSetText toUpper LLSTRING(ContactServerAdmin); +}; diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index 553894b55..0ebbb9487 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -151,5 +151,9 @@ Notification display duration in seconds. + + Contact the server admin. + Serveradministrator benachrichtigen. + From 8ab8cdbc2cccc9a4f5e9aabd0051eb2ace03f309 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Sat, 17 Aug 2019 09:25:54 -0500 Subject: [PATCH 072/116] Common - Prevent endless loop with waitAndExec Update init_perFrameHandler.sqf --- addons/common/init_perFrameHandler.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/common/init_perFrameHandler.sqf b/addons/common/init_perFrameHandler.sqf index 8ae7dcf43..023ffd9ba 100644 --- a/addons/common/init_perFrameHandler.sqf +++ b/addons/common/init_perFrameHandler.sqf @@ -56,7 +56,10 @@ GVAR(waitUntilAndExecArray) = []; _delete = false; }; - + if (diag_frameno != GVAR(nextFrameNo)) then { // in case we skipped a frame, ensure we don't add to nextFrameBufferA while iterating + TRACE_2("frame mismatch",diag_frameno,GVAR(nextFrameNo)); + GVAR(nextFrameNo) = diag_frameno; + }; // Execute the exec next frame functions { (_x select 0) call (_x select 1); From ed90459253545902c69086d43cd483775d21ce7c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 19 Aug 2019 19:55:26 -0500 Subject: [PATCH 073/116] Update init_perFrameHandler.sqf --- addons/common/init_perFrameHandler.sqf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/common/init_perFrameHandler.sqf b/addons/common/init_perFrameHandler.sqf index 023ffd9ba..c8b6260ba 100644 --- a/addons/common/init_perFrameHandler.sqf +++ b/addons/common/init_perFrameHandler.sqf @@ -3,8 +3,6 @@ #include "script_component.hpp" -#define DELAY_MONITOR_THRESHOLD 1 // Frames - GVAR(perFrameHandlerArray) = []; GVAR(perFrameHandlersToRemove) = []; GVAR(lastTickTime) = diag_tickTime; @@ -12,8 +10,7 @@ GVAR(lastTickTime) = diag_tickTime; GVAR(waitAndExecArray) = []; GVAR(waitAndExecArrayIsSorted) = false; GVAR(nextFrameNo) = diag_frameno + 1; -// PostInit can be 2 frames after preInit, need to manually set nextFrameNo, so new items get added to buffer B while processing A for the first time: -GVAR(nextFrameBufferA) = [[[], {GVAR(nextFrameNo) = diag_frameno;}]]; +GVAR(nextFrameBufferA) = []; GVAR(nextFrameBufferB) = []; GVAR(waitUntilAndExecArray) = []; @@ -23,6 +20,13 @@ GVAR(waitUntilAndExecArray) = []; private _tickTime = diag_tickTime; call FUNC(missionTimePFH); + // frame number does not match expected; can happen between pre and postInit, save-game load and on closing map + // need to manually set nextFrameNo, so new items get added to buffer B and are not executed this frame + if (diag_frameno != GVAR(nextFrameNo)) then { + TRACE_2("frame mismatch",diag_frameno,GVAR(nextFrameNo)); + GVAR(nextFrameNo) = diag_frameno; + }; + // Execute per frame handlers { _x params ["_function", "_delay", "_delta", "", "_args", "_handle"]; @@ -56,10 +60,6 @@ GVAR(waitUntilAndExecArray) = []; _delete = false; }; - if (diag_frameno != GVAR(nextFrameNo)) then { // in case we skipped a frame, ensure we don't add to nextFrameBufferA while iterating - TRACE_2("frame mismatch",diag_frameno,GVAR(nextFrameNo)); - GVAR(nextFrameNo) = diag_frameno; - }; // Execute the exec next frame functions { (_x select 0) call (_x select 1); From 405513127f388fc6e25ceff344ef21c80a46e4e4 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Mon, 19 Aug 2019 19:56:09 -0500 Subject: [PATCH 074/116] restore newline --- addons/common/init_perFrameHandler.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/common/init_perFrameHandler.sqf b/addons/common/init_perFrameHandler.sqf index c8b6260ba..d0b10f3f5 100644 --- a/addons/common/init_perFrameHandler.sqf +++ b/addons/common/init_perFrameHandler.sqf @@ -60,6 +60,7 @@ GVAR(waitUntilAndExecArray) = []; _delete = false; }; + // Execute the exec next frame functions { (_x select 0) call (_x select 1); From b4fcfb5f66f50842613fcc29c6b02759f6a9fd7a Mon Sep 17 00:00:00 2001 From: PiZZAD0X Date: Wed, 21 Aug 2019 07:57:08 -0700 Subject: [PATCH 075/116] Default transition targetstate to transition configName --- addons/statemachine/fnc_createFromConfig.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/statemachine/fnc_createFromConfig.sqf b/addons/statemachine/fnc_createFromConfig.sqf index c82bdfd09..e14f6c382 100644 --- a/addons/statemachine/fnc_createFromConfig.sqf +++ b/addons/statemachine/fnc_createFromConfig.sqf @@ -45,7 +45,7 @@ private _stateMachine = [_list, _skipNull] call FUNC(create); private _state = configName _x; { private _transition = configName _x; - private _targetState = getText (_x >> "targetState"); + private _targetState = [_x,"targetState",_transition] call BIS_fnc_returnConfigEntry; GET_FUNCTION(_condition,_x >> "condition"); GET_FUNCTION(_onTransition,_x >> "onTransition"); private _events = getArray (_x >> "events"); From 89cfeebe8022426cbb65246fc046097cfa4fe833 Mon Sep 17 00:00:00 2001 From: PiZZAD0X Date: Wed, 21 Aug 2019 08:13:38 -0700 Subject: [PATCH 076/116] is/getText replacements for BIS function --- addons/statemachine/fnc_createFromConfig.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/statemachine/fnc_createFromConfig.sqf b/addons/statemachine/fnc_createFromConfig.sqf index e14f6c382..77a7657e9 100644 --- a/addons/statemachine/fnc_createFromConfig.sqf +++ b/addons/statemachine/fnc_createFromConfig.sqf @@ -45,7 +45,10 @@ private _stateMachine = [_list, _skipNull] call FUNC(create); private _state = configName _x; { private _transition = configName _x; - private _targetState = [_x,"targetState",_transition] call BIS_fnc_returnConfigEntry; + private _targetState = _transition; + if (isText (_x >> "targetState")) then { + _targetState = getText (_x >> "targetState"); + }; GET_FUNCTION(_condition,_x >> "condition"); GET_FUNCTION(_onTransition,_x >> "onTransition"); private _events = getArray (_x >> "events"); From 664a56ca823e0e93cfc298919ad7869c8e5e4789 Mon Sep 17 00:00:00 2001 From: commy2 Date: Fri, 23 Aug 2019 21:39:19 +0200 Subject: [PATCH 077/116] handle returned assignments in key events --- addons/events/fnc_keyHandlerDown.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/events/fnc_keyHandlerDown.sqf b/addons/events/fnc_keyHandlerDown.sqf index 1adeb5157..de5d48891 100644 --- a/addons/events/fnc_keyHandlerDown.sqf +++ b/addons/events/fnc_keyHandlerDown.sqf @@ -72,7 +72,7 @@ private _blockInput = false; _params pushBack + _keybindParams; _params pushBack _x; - _blockInput = ([_params call _code] param [0, false] isEqualTo true) || {_blockInput}; + _blockInput = ([nil] apply {_params call _code} param [0, false] isEqualTo true) || {_blockInput}; }; }; } forEach (GVAR(keyDownStates) param [_inputKey, []]); From 1f7f9b225c696898c2cf7789a1a07211ee956a29 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 26 Aug 2019 14:40:52 +0200 Subject: [PATCH 078/116] Add Spanish translation for UI category By @TheMagnetar --- addons/ui/stringtable.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index cc4e0b61e..818c501d1 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -48,6 +48,7 @@ CBA UI CBA IU CBA UI + CBA Interfaz Store server passwords From 851af68c96d5c6cb9e7e35beefe50f7ea05c102c Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 2 Sep 2019 21:59:16 +0200 Subject: [PATCH 079/116] Add period at the end of target debug info log --- addons/diagnostic/XEH_preInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/diagnostic/XEH_preInit.sqf b/addons/diagnostic/XEH_preInit.sqf index d077cb9b7..50f7ef027 100644 --- a/addons/diagnostic/XEH_preInit.sqf +++ b/addons/diagnostic/XEH_preInit.sqf @@ -19,7 +19,7 @@ GVAR(projectileTrackedUnits) = []; ADDON = true; if (getMissionConfigValue ["EnableTargetDebug", 0] == 1 || {getNumber (configFile >> "EnableTargetDebug") == 1}) then { - INFO("EnableTargetDebug is enabled"); + INFO("EnableTargetDebug is enabled."); [QGVAR(watchVariable), { params ["_clientID", "_varIndex", "_statementText"]; From 524c6a7702e1147a4e6994f11ed2476e9a3d3f2f Mon Sep 17 00:00:00 2001 From: jonpas Date: Thu, 5 Sep 2019 14:07:57 +0200 Subject: [PATCH 080/116] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 36 +++++++++++++++++++ .github/ISSUE_TEMPLATE/enhancement-request.md | 20 +++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 +++++++++++ .github/ISSUE_TEMPLATE/todo.md | 10 ++++++ 4 files changed, 86 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/enhancement-request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/todo.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..21758ce68 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,36 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: Bug +assignees: '' + +--- + +**Mods (complete and add to the following information):** +- **Arma 3:** `x.xx` [e.g. 1.00 stable, rc, dev] +- **CBA:** `3.x.x` [e.g. 3.0.0 stable, commit hash] +_Make sure to reproduce the issue with only CBA on a newly created mission!_ + +**Description:** +A clear and concise description of what the bug is. + +**Steps to reproduce:** +- Go to ... +- Click ... +- See ... + +**Expected behavior:** +A clear and concise description of what you expected to happen. + +**Where did the issue occur?** +- Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal + +**Log Files:** +- Link to ([gist](https://gist.github.com) or [pastebin](http://pastebin.com)) to the client and/or server RPT file. An instruction to find your RPT files can be found [here](https://community.bistudio.com/wiki/Crash_Files#Arma_3). + +**Additional context:** +Add any other context about the problem here. + +**Screenshots:** +If applicable, add screenshots to help explain your problem. diff --git a/.github/ISSUE_TEMPLATE/enhancement-request.md b/.github/ISSUE_TEMPLATE/enhancement-request.md new file mode 100644 index 000000000..7721809d7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement-request.md @@ -0,0 +1,20 @@ +--- +name: Enhancement request +about: Suggest an improvement for this project +title: '' +labels: Enhancement +assignees: '' + +--- + +**Is your enhancement related to a problem?** +A clear and concise description of what the enhancement entails. Ex. [...] would improve user experience. + +**Solution you'd like:** +A clear and concise description of what you want to happen. + +**Alternatives you've considered:** +A clear and concise description of any alternative solutions or ideas you've considered. + +**Additional context:** +Add any other context or screenshots about the enhancement here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..1563183cd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: Feature +assignees: '' + +--- + +**Is your feature request related to a problem?** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Solution you'd like:** +A clear and concise description of what you want to happen. + +**Alternatives you've considered:** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context:** +Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/todo.md b/.github/ISSUE_TEMPLATE/todo.md new file mode 100644 index 000000000..65731e61d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/todo.md @@ -0,0 +1,10 @@ +--- +name: Todo +about: Create simple todo for this project +title: '' +labels: '' +assignees: '' + +--- + + From 9ed598c7165dc4f75a408c0567d4c44188759d38 Mon Sep 17 00:00:00 2001 From: jonpas Date: Thu, 5 Sep 2019 14:09:10 +0200 Subject: [PATCH 081/116] Remove empty Todo template (redundant) --- .github/ISSUE_TEMPLATE/todo.md | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/todo.md diff --git a/.github/ISSUE_TEMPLATE/todo.md b/.github/ISSUE_TEMPLATE/todo.md deleted file mode 100644 index 65731e61d..000000000 --- a/.github/ISSUE_TEMPLATE/todo.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -name: Todo -about: Create simple todo for this project -title: '' -labels: '' -assignees: '' - ---- - - From 4eec633b8fd5774a04df9e418b9caebf81367f86 Mon Sep 17 00:00:00 2001 From: jonpas Date: Thu, 5 Sep 2019 14:09:23 +0200 Subject: [PATCH 082/116] Remove old issue template --- .github/ISSUE_TEMPLATE.md | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index c2ffbd203..000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,19 +0,0 @@ -**Arma 3 Version:** `x.xx` (stable / rc / dev) -**CBA Version:** `3.x.x` (stable / dev + commit hash) - -**Mods:** -``` -- CBA_A3 -``` - -**Description:** -- Add a detailed description of the error. This makes it easier for us to fix the issue. - -**Steps to reproduce:** -- Add the steps needed to reproduce the issue. - -**Where did the issue occur?** -- Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal - -**RPT log file:** -- Add a link ([gist](https://gist.github.com) or [pastebin](http://pastebin.com)) to the client and/or server RPT file. An instruction to find your RPT files can be found [here](https://community.bistudio.com/wiki/Crash_Files#Arma_3). From 8a94c0344db04f62224863b9e4d9aa1c5865be52 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 7 Sep 2019 12:04:08 +0200 Subject: [PATCH 083/116] Cleanup CfgPatches and use VERSION_CONFIG consistently (#1222) * Cleanup CfgPatches and make them consistent, Use VERSION_CONFIG everywhere * Remove redundant versionDesc --- addons/accessory/MRT_AccFncs/config.cpp | 3 +-- addons/accessory/config.cpp | 6 +++--- addons/ai/config.cpp | 7 ++++--- addons/arrays/config.cpp | 7 ++++--- addons/common/config.cpp | 6 +++--- addons/diagnostic/config.cpp | 7 ++++--- addons/disposable/config.cpp | 6 +++--- addons/events/config.cpp | 7 ++++--- addons/hashes/config.cpp | 7 ++++--- addons/help/config.cpp | 6 +++--- addons/jam/config.cpp | 6 +++--- addons/jam/jam_finish/config.cpp | 7 ++++--- addons/jr/config.cpp | 6 +++--- addons/jr/jr_prep/config.cpp | 7 ++++--- addons/keybinding/config.cpp | 6 +++--- addons/main/config.cpp | 7 +++---- addons/main_a3/config.cpp | 6 +++--- addons/modules/config.cpp | 8 ++++---- addons/music/config.cpp | 7 ++++--- addons/network/config.cpp | 6 +++--- addons/optics/config.cpp | 8 ++++---- addons/settings/config.cpp | 6 +++--- addons/statemachine/config.cpp | 7 ++++--- addons/strings/config.cpp | 7 ++++--- addons/ui/config.cpp | 11 ++++++----- addons/vectors/config.cpp | 7 ++++--- addons/versioning/config.cpp | 7 ++++--- addons/xeh/config.cpp | 10 ++++------ 28 files changed, 100 insertions(+), 91 deletions(-) diff --git a/addons/accessory/MRT_AccFncs/config.cpp b/addons/accessory/MRT_AccFncs/config.cpp index e8d3335d9..6d94a6b75 100644 --- a/addons/accessory/MRT_AccFncs/config.cpp +++ b/addons/accessory/MRT_AccFncs/config.cpp @@ -1,7 +1,6 @@ class CfgPatches { class MRT_AccFncs { - requiredAddons[] = {"cba_accessory"}; - versionDesc = "MRT Attachment Functions"; units[] = {}; + requiredAddons[] = {"cba_accessory"}; }; }; diff --git a/addons/accessory/config.cpp b/addons/accessory/config.cpp index 0d84ffdfd..f62fa4152 100644 --- a/addons/accessory/config.cpp +++ b/addons/accessory/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common", "cba_events"}; + author = "$STR_CBA_Author"; authors[] = {"da12thMonkey", "Robalo", "Tupolov"}; - version = VERSION; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/ai/config.cpp b/addons/ai/config.cpp index ff0aa30ba..3b4768ac1 100644 --- a/addons/ai/config.cpp +++ b/addons/ai/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {"CBA_B_InvisibleTarget","CBA_O_InvisibleTarget","CBA_I_InvisibleTarget","CBA_BuildingPos"}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Rommel"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/arrays/config.cpp b/addons/arrays/config.cpp index fcef834ca..9b733422f 100644 --- a/addons/arrays/config.cpp +++ b/addons/arrays/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Spooner"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/common/config.cpp b/addons/common/config.cpp index a9b2c1eea..cc1e5db8a 100644 --- a/addons/common/config.cpp +++ b/addons/common/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"A3_Data_F_Enoch_Loadorder", "A3_Data_F_Mod_Loadorder"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Spooner","Sickboy","Rocko"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/diagnostic/config.cpp b/addons/diagnostic/config.cpp index 106bbaaba..5eceb9fcf 100644 --- a/addons/diagnostic/config.cpp +++ b/addons/diagnostic/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common", "cba_events"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Spooner", "Sickboy"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/disposable/config.cpp b/addons/disposable/config.cpp index de951ffe2..4f9e69495 100644 --- a/addons/disposable/config.cpp +++ b/addons/disposable/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common","cba_events"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"commy2"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/events/config.cpp b/addons/events/config.cpp index 8ed11c1ac..fe6fbd100 100644 --- a/addons/events/config.cpp +++ b/addons/events/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Spooner", "Sickboy", "Xeno", "commy2"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/hashes/config.cpp b/addons/hashes/config.cpp index fcef834ca..9b733422f 100644 --- a/addons/hashes/config.cpp +++ b/addons/hashes/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Spooner"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/help/config.cpp b/addons/help/config.cpp index a5d3b2e30..1936835f7 100644 --- a/addons/help/config.cpp +++ b/addons/help/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common","cba_keybinding"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"alef","Rocko","Sickboy"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/jam/config.cpp b/addons/jam/config.cpp index f3bfcbd27..a20ad5a26 100644 --- a/addons/jam/config.cpp +++ b/addons/jam/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Robalo"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/jam/jam_finish/config.cpp b/addons/jam/jam_finish/config.cpp index 6257b8fd4..336641721 100644 --- a/addons/jam/jam_finish/config.cpp +++ b/addons/jam/jam_finish/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = ECSTRING(jam,component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_jam"}; - version = VERSION; + author = "$STR_CBA_Author"; + authors[] = {}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/jr/config.cpp b/addons/jr/config.cpp index 967a0635b..11c2e00ed 100644 --- a/addons/jr/config.cpp +++ b/addons/jr/config.cpp @@ -11,15 +11,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_jr_prep"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Robalo"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/jr/jr_prep/config.cpp b/addons/jr/jr_prep/config.cpp index 8b88462af..39bff803b 100644 --- a/addons/jr/jr_prep/config.cpp +++ b/addons/jr/jr_prep/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = ECSTRING(jr,component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; + authors[] = {}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/keybinding/config.cpp b/addons/keybinding/config.cpp index c267f03cb..f642a097f 100644 --- a/addons/keybinding/config.cpp +++ b/addons/keybinding/config.cpp @@ -2,14 +2,14 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common", "cba_events"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Taosenai"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/main/config.cpp b/addons/main/config.cpp index a43dfa85a..f753e1b55 100644 --- a/addons/main/config.cpp +++ b/addons/main/config.cpp @@ -3,9 +3,7 @@ // Simply a package which requires other addons. class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; @@ -35,9 +33,10 @@ class CfgPatches { "cba_optics", "cba_disposable" }; - versionDesc = "C.B.A."; - VERSION_CONFIG; + author = "$STR_CBA_Author"; authors[] = {}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/main_a3/config.cpp b/addons/main_a3/config.cpp index 84fea97ca..8848301d3 100644 --- a/addons/main_a3/config.cpp +++ b/addons/main_a3/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = ECSTRING(main,component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_main"}; - VERSION_CONFIG; + author = "$STR_CBA_Author"; authors[] = {}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/modules/config.cpp b/addons/modules/config.cpp index 3e84f5613..3b3b2cd36 100644 --- a/addons/modules/config.cpp +++ b/addons/modules/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {"CBA_ModuleAttack", "CBA_ModuleDefend", "CBA_ModulePatrol"}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"WiredTiger"}; - + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/music/config.cpp b/addons/music/config.cpp index 425eecd87..c4fd98c0b 100644 --- a/addons/music/config.cpp +++ b/addons/music/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Dedmen", "Dorbedo", "Fishy"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/network/config.cpp b/addons/network/config.cpp index b1db427e6..f971555e9 100644 --- a/addons/network/config.cpp +++ b/addons/network/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common", "cba_events"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Sickboy"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/optics/config.cpp b/addons/optics/config.cpp index e4ac057a4..4e8c46c4c 100644 --- a/addons/optics/config.cpp +++ b/addons/optics/config.cpp @@ -1,16 +1,16 @@ -#include "script_component.hpp" +#include "script_component.hpp" class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common","cba_events","cba_jr"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"commy2"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/settings/config.cpp b/addons/settings/config.cpp index 7d7f92c1a..99b5d0b58 100644 --- a/addons/settings/config.cpp +++ b/addons/settings/config.cpp @@ -2,15 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common", "cba_events"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"commy2"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/statemachine/config.cpp b/addons/statemachine/config.cpp index b26b06a09..32b516fb0 100644 --- a/addons/statemachine/config.cpp +++ b/addons/statemachine/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"BaerMitUmlaut"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/strings/config.cpp b/addons/strings/config.cpp index c940045cd..4aca9c1b1 100644 --- a/addons/strings/config.cpp +++ b/addons/strings/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Spooner", "Kronzky"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/ui/config.cpp b/addons/ui/config.cpp index 5e7aa1d0f..41fff9792 100644 --- a/addons/ui/config.cpp +++ b/addons/ui/config.cpp @@ -1,15 +1,16 @@ -#include "script_component.hpp" +#include "script_component.hpp" class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; - requiredVersion = 1; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common", "cba_arrays"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Dr Eyeball", "commy2"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/vectors/config.cpp b/addons/vectors/config.cpp index 350b5ab6d..82ae5e7c3 100644 --- a/addons/vectors/config.cpp +++ b/addons/vectors/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Vigilante"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/versioning/config.cpp b/addons/versioning/config.cpp index 10af1dcf7..954df93ae 100644 --- a/addons/versioning/config.cpp +++ b/addons/versioning/config.cpp @@ -2,14 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; + weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common", "cba_strings", "cba_hashes", "cba_diagnostic", "cba_events", "cba_network"}; - version = VERSION; + author = "$STR_CBA_Author"; authors[] = {"Sickboy"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; }; }; diff --git a/addons/xeh/config.cpp b/addons/xeh/config.cpp index acf0a946e..d1a005d67 100644 --- a/addons/xeh/config.cpp +++ b/addons/xeh/config.cpp @@ -2,17 +2,15 @@ class CfgPatches { class ADDON { - author = "$STR_CBA_Author"; name = CSTRING(component); - url = "$STR_CBA_URL"; units[] = {}; weapons[] = {}; + requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"cba_common"}; - requiredVersion = 0.1; - version = "4.0.0"; // Due to older mod versions requiring > 3,3,3 etc - versionStr = "4.0.0"; - versionAr[] = {4, 0, 0}; + author = "$STR_CBA_Author"; authors[] = {"Solus", "Killswitch", "commy2"}; + url = "$STR_CBA_URL"; + VERSION_CONFIG; // this prevents any patched class from requiring XEH addonRootClass = "A3_Characters_F"; From 851b6909ef82243b4251fe652de27b714c49473a Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 7 Sep 2019 12:47:05 +0200 Subject: [PATCH 084/116] Improve VERSION_CONFIG (#1221) * Fix VERSION_CONFIG version number API version should always be a number, while versionStr should be a string, no automatic conversions * Read versionStr in help component, fall-back to version * Document VERSION_CONFIG in macros file * Support number and text version as fall-back --- addons/help/XEH_preStart.sqf | 12 ++++++-- addons/main/script_macros_common.hpp | 42 +++++++++++++++++++++++++--- addons/main/script_mod.hpp | 5 ++-- 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/addons/help/XEH_preStart.sqf b/addons/help/XEH_preStart.sqf index 22eb8df47..db4322040 100644 --- a/addons/help/XEH_preStart.sqf +++ b/addons/help/XEH_preStart.sqf @@ -21,8 +21,16 @@ private _credits = []; private _version = ""; - if (isText (_x >> "version")) then { - _version = format [" v%1", getText (_x >> "version")]; + if (isText (_x >> "versionStr")) then { + _version = format [" v%1", getText (_x >> "versionStr")]; + } else { + if (isNumber (_x >> "version")) then { + _version = format [" v%1", getNumber (_x >> "version")]; + } else { + if (isText (_x >> "version")) then { + _version = format [" v%1", getText (_x >> "version")]; + }; + }; }; private _author = getText (_x >> "author") call CBA_fnc_sanitizeHTML; diff --git a/addons/main/script_macros_common.hpp b/addons/main/script_macros_common.hpp index 18f33c785..29b1e995c 100644 --- a/addons/main/script_macros_common.hpp +++ b/addons/main/script_macros_common.hpp @@ -51,21 +51,55 @@ #define MAINLOGIC main #endif +#define ADDON DOUBLES(PREFIX,COMPONENT) +#define MAIN_ADDON DOUBLES(PREFIX,main) + +/* ------------------------------------------- +Macro: VERSION_CONFIG + Define CBA Versioning System config entries. + + VERSION should be a floating-point number (1 separator). + VERSION_STR is a string representation of the version. + VERSION_AR is an array representation of the version. + + VERSION must always be defined, otherwise it is 0. + VERSION_STR and VERSION_AR default to VERSION if undefined. + +Parameters: + None + +Example: + (begin example) + #define VERSION 1.0 + #define VERSION_STR 1.0.1 + #define VERSION_AR 1,0,1 + + class CfgPatches { + class MyMod_main { + VERSION_CONFIG; + }; + }; + (end) + +Author: + ?, Jonpas +------------------------------------------- */ #ifndef VERSION #define VERSION 0 #endif +#ifndef VERSION_STR + #define VERSION_STR VERSION +#endif + #ifndef VERSION_AR #define VERSION_AR VERSION #endif #ifndef VERSION_CONFIG - #define VERSION_CONFIG version = VERSION; versionStr = QUOTE(VERSION); versionAr[] = {VERSION_AR} + #define VERSION_CONFIG version = VERSION; versionStr = QUOTE(VERSION_STR); versionAr[] = {VERSION_AR} #endif -#define ADDON DOUBLES(PREFIX,COMPONENT) -#define MAIN_ADDON DOUBLES(PREFIX,main) - /* ------------------------------------------- Group: Debugging ------------------------------------------- */ diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp index 923bd0835..4d1f4e97d 100644 --- a/addons/main/script_mod.hpp +++ b/addons/main/script_mod.hpp @@ -5,8 +5,9 @@ // We will use the DATE for the BUILD# in the format YYMMDD - VM #include "script_version.hpp" -#define VERSION MAJOR.MINOR.PATCHLVL.BUILD -#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD +#define VERSION MAJOR.MINOR +#define VERSION_STR MAJOR.MINOR.PATCHLVL.BUILD +#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD // MINIMAL required version for the Mod. Components can specify others.. #define REQUIRED_VERSION 1.94 From 94c5a0689c8ba2f47cd0b22e4eac9ba76b6f2679 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 7 Sep 2019 13:57:34 +0200 Subject: [PATCH 085/116] Support disableRandomization array --- addons/common/fnc_randomizeFacewear.sqf | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/addons/common/fnc_randomizeFacewear.sqf b/addons/common/fnc_randomizeFacewear.sqf index ccea87093..65a3da4d2 100644 --- a/addons/common/fnc_randomizeFacewear.sqf +++ b/addons/common/fnc_randomizeFacewear.sqf @@ -33,14 +33,21 @@ if (isNull _unit) exitWith { false }; -if (!local _unit || {!(_unit getVariable ["BIS_enableRandomization", true])}) exitWith {true}; +// Disabled conditions +if (!local _unit) exitWith {true}; -private _facewearList = getArray (configFile >> "CfgVehicles" >> typeOf _unit >> "CBA_facewearList"); +private _randomizationDisabled = getArray (missionConfigFile >> "disableRandomization") findIf { + _unit isKindOf _x || {(vehicleVarName _unit) isEqualTo _x} +} != -1; + +if (_randomizationDisabled || {!(_unit getVariable ["BIS_enableRandomization", true])}) exitWith {true}; +// Get list +private _facewearList = getArray (configFile >> "CfgVehicles" >> typeOf _unit >> "CBA_facewearList"); if (_facewearList isEqualTo []) exitWith {true}; +// Apply private _facewear = selectRandomWeighted _facewearList; - if (_facewear == "") then { removeGoggles _unit; } else { From 13cc2e0bde9f6809738a6bd3fd4bfa1524605331 Mon Sep 17 00:00:00 2001 From: jonpas Date: Sat, 7 Sep 2019 20:40:17 +0200 Subject: [PATCH 086/116] Support empty string or None Co-Authored-By: commy2 --- addons/common/fnc_randomizeFacewear.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/common/fnc_randomizeFacewear.sqf b/addons/common/fnc_randomizeFacewear.sqf index 65a3da4d2..f14fdd655 100644 --- a/addons/common/fnc_randomizeFacewear.sqf +++ b/addons/common/fnc_randomizeFacewear.sqf @@ -48,7 +48,7 @@ if (_facewearList isEqualTo []) exitWith {true}; // Apply private _facewear = selectRandomWeighted _facewearList; -if (_facewear == "") then { +if ((toLower _facewear) in ["", "none"]) then { removeGoggles _unit; } else { _unit addGoggles _facewear; From 1050d673bcf0688f5b0669144a0055ad141de20f Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 8 Sep 2019 01:09:58 +0200 Subject: [PATCH 087/116] report backpacks with CBA_fnc_getItemConfig --- addons/common/fnc_getItemConfig.sqf | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/addons/common/fnc_getItemConfig.sqf b/addons/common/fnc_getItemConfig.sqf index c7a7c72e9..828d9bd16 100644 --- a/addons/common/fnc_getItemConfig.sqf +++ b/addons/common/fnc_getItemConfig.sqf @@ -6,7 +6,7 @@ Description: A function used to return the config of an item. Parameters: - _weapon - Any kind of item, weapon or magazine class name + _item - Any kind of item, weapon or magazine class name Returns: _config - Item config. @@ -23,16 +23,22 @@ Author: ---------------------------------------------------------------------------- */ SCRIPT(getItemConfig); -params [["_weapon", "", [""]]]; +params [["_item", "", [""]]]; private _result = configNull; { - private _config = configFile >> _x >> _weapon; + private _config = configFile >> _x >> _item; if (isClass _config) exitWith { _result = _config; }; } forEach ["CfgWeapons", "CfgMagazines", "CfgGlasses"]; +private _config = configFile >> "CfgVehicles" >> _item; + +if (getNumber (_config >> "isBackpack") isEqualTo 1) then { + _result = _config; +}; + _result From 061aa91c280c3978673ee5e0ac6c2d0e0dca0e76 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sun, 8 Sep 2019 23:51:13 +0200 Subject: [PATCH 088/116] fix crash when hosting server with large ui scale --- addons/ui/fnc_initDisplayRemoteMissions.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/ui/fnc_initDisplayRemoteMissions.sqf b/addons/ui/fnc_initDisplayRemoteMissions.sqf index b4aec7274..de905c80c 100644 --- a/addons/ui/fnc_initDisplayRemoteMissions.sqf +++ b/addons/ui/fnc_initDisplayRemoteMissions.sqf @@ -30,11 +30,13 @@ _ctrlMaps lbSetCurSel 0; ctrlPosition _ctrlMissions params ["_left", "_top", "_width", "_height"]; +private _widthSearchBar = (_width - 11 * GUI_GRID_W) min (10 * GUI_GRID_W); + private _ctrlSearch = _display ctrlCreate ["RscEdit", IDC_SEARCH]; _ctrlSearch ctrlSetPosition [ _left + 0.1 * GUI_GRID_W, _top, - _width - 21.2 * GUI_GRID_W, + _widthSearchBar, GUI_GRID_H ]; _ctrlSearch ctrlCommit 0; @@ -44,7 +46,7 @@ _ctrlSearch ctrlSetText _filter; private _ctrlSearchButton = _display ctrlCreate ["RscButtonSearch", IDC_SEARCH_BUTTON]; _ctrlSearchButton ctrlSetPosition [ - _left + _width - 21 * GUI_GRID_W, + _left + 0.1 * GUI_GRID_W + _widthSearchBar, _top, GUI_GRID_W, GUI_GRID_H From 9e6cf090ead5e0290ae86f0596ee5112e4221a53 Mon Sep 17 00:00:00 2001 From: jonpas Date: Mon, 9 Sep 2019 13:19:15 +0200 Subject: [PATCH 089/116] Bump to v3.12.2.190909 --- README.md | 4 ++-- addons/main/script_version.hpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 41d98b347..a98985ef9 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Community Base Addons [![](https://img.shields.io/travis/CBATeam/CBA_A3.svg?style=flat-square)](https://travis-ci.org/CBATeam/CBA_A3) -[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.1) -[![](https://img.shields.io/badge/Release-3.12.1-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/latest) +[![](https://img.shields.io/badge/Changelog-Link-orange.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/issues?q=is%3Aclosed+milestone%3A3.12.2) +[![](https://img.shields.io/badge/Release-3.12.2-blue.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/releases/latest) [![](https://img.shields.io/badge/Github-Wiki-lightgrey.svg?style=flat-square)](https://github.com/CBATeam/CBA_A3/wiki) [![](https://img.shields.io/badge/BIF-Thread-lightgrey.svg?style=flat-square)](https://forums.bistudio.com/topic/168277-cba-community-base-addons-arma-3) [![](https://img.shields.io/badge/Function-Documentation-yellow.svg?style=flat-square)](https://cbateam.github.io/CBA_A3/docs/files/overview-txt.html) diff --git a/addons/main/script_version.hpp b/addons/main/script_version.hpp index 6c2acf748..7d10a5306 100755 --- a/addons/main/script_version.hpp +++ b/addons/main/script_version.hpp @@ -1,4 +1,4 @@ #define MAJOR 3 #define MINOR 12 -#define PATCHLVL 1 -#define BUILD 190812 +#define PATCHLVL 2 +#define BUILD 190909 From 06012e513963cd927365bdb14857eb5f2140f5d6 Mon Sep 17 00:00:00 2001 From: commy2 Date: Mon, 9 Sep 2019 17:44:31 +0200 Subject: [PATCH 090/116] optimization --- addons/common/fnc_getItemConfig.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/common/fnc_getItemConfig.sqf b/addons/common/fnc_getItemConfig.sqf index 828d9bd16..d75637bc2 100644 --- a/addons/common/fnc_getItemConfig.sqf +++ b/addons/common/fnc_getItemConfig.sqf @@ -35,10 +35,12 @@ private _result = configNull; }; } forEach ["CfgWeapons", "CfgMagazines", "CfgGlasses"]; -private _config = configFile >> "CfgVehicles" >> _item; +if (isNull _result) then { + private _config = configFile >> "CfgVehicles" >> _item; -if (getNumber (_config >> "isBackpack") isEqualTo 1) then { - _result = _config; + if (getNumber (_config >> "isBackpack") isEqualTo 1) then { + _result = _config; + }; }; _result From eb0827efec68a7e6ed7a99dd0eed04fc41fc2e1b Mon Sep 17 00:00:00 2001 From: jonpas Date: Tue, 10 Sep 2019 16:29:50 +0200 Subject: [PATCH 091/116] Remove excessive concatenation operators from macros library --- addons/main/script_macros_common.hpp | 44 ++++++++++++++-------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/addons/main/script_macros_common.hpp b/addons/main/script_macros_common.hpp index 29b1e995c..41a4faea7 100644 --- a/addons/main/script_macros_common.hpp +++ b/addons/main/script_macros_common.hpp @@ -512,8 +512,8 @@ Group: General // ************************************* // Internal Functions -#define DOUBLES(var1,var2) ##var1##_##var2 -#define TRIPLES(var1,var2,var3) ##var1##_##var2##_##var3 +#define DOUBLES(var1,var2) var1##_##var2 +#define TRIPLES(var1,var2,var3) var1##_##var2##_##var3 #define QUOTE(var1) #var1 #ifdef MODULAR @@ -767,29 +767,29 @@ Macro: ISNILS() Author: Sickboy ------------------------------------------- */ -#define ISNILS(VARIABLE,DEFAULT_VALUE) if (isNil #VARIABLE) then { ##VARIABLE = ##DEFAULT_VALUE } +#define ISNILS(VARIABLE,DEFAULT_VALUE) if (isNil #VARIABLE) then { VARIABLE = DEFAULT_VALUE } #define ISNILS2(var1,var2,var3,var4) ISNILS(TRIPLES(var1,var2,var3),var4) #define ISNILS3(var1,var2,var3) ISNILS(DOUBLES(var1,var2),var3) #define ISNIL(var1,var2) ISNILS2(PREFIX,COMPONENT,var1,var2) #define ISNILMAIN(var1,var2) ISNILS3(PREFIX,var1,var2) -#define CREATELOGICS(var1,var2) ##var1##_##var2## = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"] -#define CREATELOGICLOCALS(var1,var2) ##var1##_##var2## = "LOGIC" createVehicleLocal [0, 0, 0] -#define CREATELOGICGLOBALS(var1,var2) ##var1##_##var2## = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"]; publicVariable QUOTE(DOUBLES(var1,var2)) -#define CREATELOGICGLOBALTESTS(var1,var2) ##var1##_##var2## = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit [QUOTE(DOUBLES(ADDON,logic)), [0, 0, 0], [], 0, "NONE"] +#define CREATELOGICS(var1,var2) var1##_##var2 = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"] +#define CREATELOGICLOCALS(var1,var2) var1##_##var2 = "LOGIC" createVehicleLocal [0, 0, 0] +#define CREATELOGICGLOBALS(var1,var2) var1##_##var2 = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit ["LOGIC", [0, 0, 0], [], 0, "NONE"]; publicVariable QUOTE(DOUBLES(var1,var2)) +#define CREATELOGICGLOBALTESTS(var1,var2) var1##_##var2 = ([sideLogic] call CBA_fnc_getSharedGroup) createUnit [QUOTE(DOUBLES(ADDON,logic)), [0, 0, 0], [], 0, "NONE"] -#define GETVARS(var1,var2,var3) (##var1##_##var2 getVariable #var3) +#define GETVARS(var1,var2,var3) (var1##_##var2 getVariable #var3) #define GETVARMAINS(var1,var2) GETVARS(var1,MAINLOGIC,var2) #ifndef PATHTO_SYS - #define PATHTO_SYS(var1,var2,var3) \MAINPREFIX\##var1\SUBPREFIX\##var2\##var3.sqf + #define PATHTO_SYS(var1,var2,var3) \MAINPREFIX\var1\SUBPREFIX\var2\var3.sqf #endif #ifndef PATHTOF_SYS - #define PATHTOF_SYS(var1,var2,var3) \MAINPREFIX\##var1\SUBPREFIX\##var2\##var3 + #define PATHTOF_SYS(var1,var2,var3) \MAINPREFIX\var1\SUBPREFIX\var2\var3 #endif #ifndef PATHTOF2_SYS - #define PATHTOF2_SYS(var1,var2,var3) MAINPREFIX\##var1\SUBPREFIX\##var2\##var3 + #define PATHTOF2_SYS(var1,var2,var3) MAINPREFIX\var1\SUBPREFIX\var2\var3 #endif #define PATHTO_R(var1) PATHTOF2_SYS(PREFIX,COMPONENT_C,var1) @@ -815,22 +815,22 @@ Macro: ISNILS() #define COMPILE_FILE_SYS(var1,var2,var3) COMPILE_FILE2_SYS('PATHTO_SYS(var1,var2,var3)') #define COMPILE_FILE_CFG_SYS(var1,var2,var3) COMPILE_FILE2_CFG_SYS('PATHTO_SYS(var1,var2,var3)') -#define SETVARS(var1,var2) ##var1##_##var2 setVariable +#define SETVARS(var1,var2) var1##_##var2 setVariable #define SETVARMAINS(var1) SETVARS(var1,MAINLOGIC) -#define GVARMAINS(var1,var2) ##var1##_##var2## +#define GVARMAINS(var1,var2) var1##_##var2 #define CFGSETTINGSS(var1,var2) configFile >> "CfgSettings" >> #var1 >> #var2 -//#define SETGVARS(var1,var2,var3) ##var1##_##var2##_##var3 = -//#define SETGVARMAINS(var1,var2) ##var1##_##var2 = +//#define SETGVARS(var1,var2,var3) var1##_##var2##_##var3 = +//#define SETGVARMAINS(var1,var2) var1##_##var2 = // Compile-Once, JIT: On first use. -// #define PREPMAIN_SYS(var1,var2,var3) ##var1##_fnc_##var3 = { ##var1##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)); if (isNil "_this") then { call ##var1##_fnc_##var3 } else { _this call ##var1##_fnc_##var3 } } -// #define PREP_SYS(var1,var2,var3) ##var1##_##var2##_fnc_##var3 = { ##var1##_##var2##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)); if (isNil "_this") then { call ##var1##_##var2##_fnc_##var3 } else { _this call ##var1##_##var2##_fnc_##var3 } } -// #define PREP_SYS2(var1,var2,var3,var4) ##var1##_##var2##_fnc_##var4 = { ##var1##_##var2##_fnc_##var4 = COMPILE_FILE_SYS(var1,var3,DOUBLES(fnc,var4)); if (isNil "_this") then { call ##var1##_##var2##_fnc_##var4 } else { _this call ##var1##_##var2##_fnc_##var4 } } +// #define PREPMAIN_SYS(var1,var2,var3) var1##_fnc_##var3 = { var1##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)); if (isNil "_this") then { call var1##_fnc_##var3 } else { _this call var1##_fnc_##var3 } } +// #define PREP_SYS(var1,var2,var3) var1##_##var2##_fnc_##var3 = { var1##_##var2##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)); if (isNil "_this") then { call var1##_##var2##_fnc_##var3 } else { _this call var1##_##var2##_fnc_##var3 } } +// #define PREP_SYS2(var1,var2,var3,var4) var1##_##var2##_fnc_##var4 = { var1##_##var2##_fnc_##var4 = COMPILE_FILE_SYS(var1,var3,DOUBLES(fnc,var4)); if (isNil "_this") then { call var1##_##var2##_fnc_##var4 } else { _this call var1##_##var2##_fnc_##var4 } } // Compile-Once, at Macro. As opposed to Compile-Once, on first use. -#define PREPMAIN_SYS(var1,var2,var3) ##var1##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)) -#define PREP_SYS(var1,var2,var3) ##var1##_##var2##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)) -#define PREP_SYS2(var1,var2,var3,var4) ##var1##_##var2##_fnc_##var4 = COMPILE_FILE_SYS(var1,var3,DOUBLES(fnc,var4)) +#define PREPMAIN_SYS(var1,var2,var3) var1##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)) +#define PREP_SYS(var1,var2,var3) var1##_##var2##_fnc_##var3 = COMPILE_FILE_SYS(var1,var2,DOUBLES(fnc,var3)) +#define PREP_SYS2(var1,var2,var3,var4) var1##_##var2##_fnc_##var4 = COMPILE_FILE_SYS(var1,var3,DOUBLES(fnc,var4)) #define LSTR(var1) TRIPLES(ADDON,STR,var1) @@ -922,7 +922,7 @@ Macro: GVARMAIN() #define GETVAR(var1) GETVARS(PREFIX,COMPONENT,var1) #define SETVAR SETVARS(PREFIX,COMPONENT) #define SETVARMAIN SETVARMAINS(PREFIX) -#define IFCOUNT(var1,var2,var3) if (count ##var1 > ##var2) then { ##var3 = ##var1 select ##var2 }; +#define IFCOUNT(var1,var2,var3) if (count var1 > var2) then { var3 = var1 select var2 }; /* ------------------------------------------- Macro: PREP() From b896b7a12070415a322fe01da6117a3cc7514217 Mon Sep 17 00:00:00 2001 From: Blutze <37950828+Blutze@users.noreply.github.com> Date: Wed, 11 Sep 2019 21:32:23 +0200 Subject: [PATCH 092/116] Add new muzzle slots --- addons/jr/jr_classes.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/addons/jr/jr_classes.hpp b/addons/jr/jr_classes.hpp index 085eba860..d89cf3a8a 100644 --- a/addons/jr/jr_classes.hpp +++ b/addons/jr/jr_classes.hpp @@ -280,6 +280,15 @@ class asdg_MuzzleSlot_762R: asdg_MuzzleSlot { // for 7.62x39 suppressors class compatibleItems {}; }; + +class asdg_MuzzleSlot_762R_PK: asdg_MuzzleSlot { // for 7.62x54R PK mount suppressors + class compatibleItems {}; +}; + +class asdg_MuzzleSlot_762R_SVD: asdg_MuzzleSlot { // for 7.62x54R SVD mount suppressors + class compatibleItems {}; +}; + class asdg_MuzzleSlot_58: asdg_MuzzleSlot { // for 5.8x42 suppressors class compatibleItems { muzzle_snds_58_blk_F = 1; @@ -288,3 +297,7 @@ class asdg_MuzzleSlot_58: asdg_MuzzleSlot { // for 5.8x42 suppressors muzzle_snds_58_hex_F = 1; }; }; + +class asdg_MuzzleSlot_46: asdg_MuzzleSlot { // for 4.6x30 suppressors + class compatibleItems {}; +}; From 68d00547fe25c691ce370509a2737c5bcbddb8c8 Mon Sep 17 00:00:00 2001 From: commy2 Date: Sat, 14 Sep 2019 14:28:04 +0200 Subject: [PATCH 093/116] fix includeDisabled flag in CBA_fnc_supportMonitor --- addons/xeh/fnc_supportMonitor.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/xeh/fnc_supportMonitor.sqf b/addons/xeh/fnc_supportMonitor.sqf index ad29d22f8..b25a0adf8 100644 --- a/addons/xeh/fnc_supportMonitor.sqf +++ b/addons/xeh/fnc_supportMonitor.sqf @@ -29,7 +29,7 @@ private _notSupportingClasses = []; { if (_classFilter == "" || {configName _x isKindOf _classFilter}) then { - if (!isClass (_x >> "EventHandlers" >> QUOTE(XEH_CLASS))) then { + if (!isText (_x >> "EventHandlers" >> QUOTE(XEH_CLASS) >> "init")) then { // don't list duplicates if (!_includeDuplicates && {{configName _x == "EventHandlers"} count configProperties [_x, "isClass _x", false] == 0}) exitWith {}; From adb26e025f96fcefec11891e1154f6e1a3df2f74 Mon Sep 17 00:00:00 2001 From: mharis001 Date: Sat, 14 Sep 2019 20:10:18 -0400 Subject: [PATCH 094/116] Minor improvements to settings UI --- addons/settings/gui.hpp | 48 ++++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/addons/settings/gui.hpp b/addons/settings/gui.hpp index 8b204c182..94fb9a17c 100644 --- a/addons/settings/gui.hpp +++ b/addons/settings/gui.hpp @@ -119,20 +119,43 @@ class RscDisplayClientGetReady: RscDisplayGetReady { }; }; -class RscControlsGroupNoHScrollbars; +class RscControlsGroup; +class RscControlsGroupNoHScrollbars: RscControlsGroup { + class VScrollbar; +}; + class GVAR(OptionsGroup): RscControlsGroupNoHScrollbars { x = POS_W(0); y = POS_H(3.5); w = POS_W(37.5); h = POS_H(13.8); lineHeight = POS_H(1); + class VScrollbar: VScrollbar { + thumb = "\a3\3DEN\Data\Controls\ctrlDefault\thumb_ca.paa"; + border = "\a3\3DEN\Data\Controls\ctrlDefault\border_ca.paa"; + arrowFull = "\a3\3DEN\Data\Controls\ctrlDefault\arrowFull_ca.paa"; + arrowEmpty = "\a3\3DEN\Data\Controls\ctrlDefault\arrowEmpty_ca.paa"; + }; +}; + +class RscCombo { + class ComboScrollBar; +}; +class GVAR(RscCombo): RscCombo { + arrowFull = "\a3\3DEN\Data\Controls\ctrlCombo\arrowFull_ca.paa"; + arrowEmpty = "\a3\3DEN\Data\Controls\ctrlCombo\arrowEmpty_ca.paa"; + class ComboScrollBar: ComboScrollBar { + thumb = "\a3\3DEN\Data\Controls\ctrlDefault\thumb_ca.paa"; + border = "\a3\3DEN\Data\Controls\ctrlDefault\border_ca.paa"; + arrowFull = "\a3\3DEN\Data\Controls\ctrlDefault\arrowFull_ca.paa"; + arrowEmpty = "\a3\3DEN\Data\Controls\ctrlDefault\arrowEmpty_ca.paa"; + }; }; // Has to be created dynamically for every options group, because they would // interfere with the controls groups otherwise. Scripted controls are always // placed below config controls. -class RscCombo; -class GVAR(AddonsList): RscCombo { +class GVAR(AddonsList): GVAR(RscCombo) { linespacing = 1; text = ""; wholeHeight = POS_H(12); @@ -293,7 +316,7 @@ class GVAR(Row_List): GVAR(Row_Base) { class controls: controls { class Name: Name {}; - class List: RscCombo { + class List: GVAR(RscCombo) { idc = IDC_SETTING_LIST; x = POS_W(16); y = POS_H(0) + TABLE_LINE_SPACING/2; @@ -307,18 +330,18 @@ class GVAR(Row_List): GVAR(Row_Base) { }; }; -class RscXSliderH; +class ctrlXSliderH; class GVAR(Row_Slider): GVAR(Row_Base) { GVAR(script) = QFUNC(gui_settingSlider); class controls: controls { class Name: Name {}; - class Slider: RscXSliderH { + class Slider: ctrlXSliderH { idc = IDC_SETTING_SLIDER; x = POS_W(16); y = POS_H(0) + TABLE_LINE_SPACING/2; - w = POS_W(8); + w = POS_W(7.9); h = POS_H(1); }; class Edit: RscEdit { @@ -350,14 +373,14 @@ class GVAR(Row_Color): GVAR(Row_Base) { w = POS_W(6); h = POS_H(1); }; - class Red: RscXSliderH { + class Red: ctrlXSliderH { idc = IDC_SETTING_COLOR_RED; color[] = {1,0,0,0.6}; colorActive[] = {1,0,0,1}; colorDisable[] = {1,0,0,0.4}; x = POS_W(16); y = POS_H(0) + TABLE_LINE_SPACING/2; - w = POS_W(8); + w = POS_W(7.9); h = POS_H(1); }; class Red_Edit: RscEdit { @@ -420,11 +443,11 @@ class GVAR(Row_ColorAlpha): GVAR(Row_Color) { class Green_Edit: Green_Edit {}; class Blue: Blue {}; class Blue_Edit: Blue_Edit {}; - class Alpha: RscXSliderH { + class Alpha: ctrlXSliderH { idc = IDC_SETTING_COLOR_ALPHA; x = POS_W(16); y = POS_H(3) + TABLE_LINE_SPACING/2; - w = POS_W(8); + w = POS_W(7.9); h = POS_H(1); }; class Alpha_Edit: RscEdit { @@ -459,7 +482,7 @@ class GVAR(Row_Time): GVAR(Row_Base) { class Name: Name { y = POS_H(0.5) + TABLE_LINE_SPACING / 2; }; - class Slider: RscXSliderH { + class Slider: ctrlXSliderH { idc = IDC_SETTING_TIME_SLIDER; x = POS_W(16); y = POS_H(0) + TABLE_LINE_SPACING / 2; @@ -520,7 +543,6 @@ class GVAR(Row_Time): GVAR(Row_Base) { }; }; -class RscControlsGroup; class RscTitle; class RscListBox; From c37a148b507e1a2fddcdf311c4c263811675aee8 Mon Sep 17 00:00:00 2001 From: mharis001 <34453221+mharis001@users.noreply.github.com> Date: Sun, 15 Sep 2019 01:52:00 -0400 Subject: [PATCH 095/116] Apply suggestions from code review Co-Authored-By: commy2 --- addons/settings/gui.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/settings/gui.hpp b/addons/settings/gui.hpp index 94fb9a17c..cd2589583 100644 --- a/addons/settings/gui.hpp +++ b/addons/settings/gui.hpp @@ -130,6 +130,7 @@ class GVAR(OptionsGroup): RscControlsGroupNoHScrollbars { w = POS_W(37.5); h = POS_H(13.8); lineHeight = POS_H(1); + class VScrollbar: VScrollbar { thumb = "\a3\3DEN\Data\Controls\ctrlDefault\thumb_ca.paa"; border = "\a3\3DEN\Data\Controls\ctrlDefault\border_ca.paa"; @@ -141,9 +142,11 @@ class GVAR(OptionsGroup): RscControlsGroupNoHScrollbars { class RscCombo { class ComboScrollBar; }; + class GVAR(RscCombo): RscCombo { arrowFull = "\a3\3DEN\Data\Controls\ctrlCombo\arrowFull_ca.paa"; arrowEmpty = "\a3\3DEN\Data\Controls\ctrlCombo\arrowEmpty_ca.paa"; + class ComboScrollBar: ComboScrollBar { thumb = "\a3\3DEN\Data\Controls\ctrlDefault\thumb_ca.paa"; border = "\a3\3DEN\Data\Controls\ctrlDefault\border_ca.paa"; From 0911400696c9ce440da92bd8b6b2313128b672b2 Mon Sep 17 00:00:00 2001 From: Blutze <37950828+Blutze@users.noreply.github.com> Date: Mon, 16 Sep 2019 07:58:23 +0200 Subject: [PATCH 096/116] Clean up empty lines --- addons/jr/jr_classes.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/jr/jr_classes.hpp b/addons/jr/jr_classes.hpp index d89cf3a8a..9e63df935 100644 --- a/addons/jr/jr_classes.hpp +++ b/addons/jr/jr_classes.hpp @@ -280,11 +280,9 @@ class asdg_MuzzleSlot_762R: asdg_MuzzleSlot { // for 7.62x39 suppressors class compatibleItems {}; }; - class asdg_MuzzleSlot_762R_PK: asdg_MuzzleSlot { // for 7.62x54R PK mount suppressors class compatibleItems {}; }; - class asdg_MuzzleSlot_762R_SVD: asdg_MuzzleSlot { // for 7.62x54R SVD mount suppressors class compatibleItems {}; }; From f925da7a823543d39bf75edefe0956ff90b2ecc5 Mon Sep 17 00:00:00 2001 From: Drofseh Date: Sun, 29 Sep 2019 10:37:26 -0700 Subject: [PATCH 097/116] Add magwells for the UZI and AS50 --- addons/jam/magwells_50BMG.hpp | 1 + addons/jam/magwells_9x19.hpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/addons/jam/magwells_50BMG.hpp b/addons/jam/magwells_50BMG.hpp index 3e36f884b..5044c0a70 100644 --- a/addons/jam/magwells_50BMG.hpp +++ b/addons/jam/magwells_50BMG.hpp @@ -1 +1,2 @@ + class CBA_50BMG_AS50 {}; // Accuracy International AS50 class CBA_50BMG_M107 {}; // M82, M107, G82 diff --git a/addons/jam/magwells_9x19.hpp b/addons/jam/magwells_9x19.hpp index 3d2d5b44b..6299e77d6 100644 --- a/addons/jam/magwells_9x19.hpp +++ b/addons/jam/magwells_9x19.hpp @@ -52,6 +52,8 @@ class CBA_9x19_STEYR {}; // AUG SMG, MPi, TMP class CBA_9x19_TT {}; // TT-33 Tokarev in 9x19mm (M48, Tokagypt 58, Type 54) class CBA_9x19_UMP {}; // HK UMP 9 + class CBA_9x19_UZI {}; // UZI + class CBA_9x19_UZI_Pro {}; // UZI Pro class CBA_9x19_Vis {}; // wz. 35 Vis (Radom) class CBA_9x19_Vityaz {}; // Vityaz-SN class CBA_9x19_Vz68 {}; // Škorpion (vz. 68) From b5b40f18616ac8af573e620c08349834f5d88271 Mon Sep 17 00:00:00 2001 From: NeilZar Date: Wed, 2 Oct 2019 18:32:37 +0200 Subject: [PATCH 098/116] Add turret event --- addons/events/CfgFunctions.hpp | 1 + addons/events/XEH_preInit.sqf | 1 + addons/events/fnc_turretEvent.sqf | 48 ++++++++++++++++++++++++++++++ addons/events/script_component.hpp | 6 ++++ 4 files changed, 56 insertions(+) create mode 100644 addons/events/fnc_turretEvent.sqf diff --git a/addons/events/CfgFunctions.hpp b/addons/events/CfgFunctions.hpp index 06f67e845..8b83e7d7c 100644 --- a/addons/events/CfgFunctions.hpp +++ b/addons/events/CfgFunctions.hpp @@ -21,6 +21,7 @@ class CfgFunctions { PATHTO_FNC(serverEvent); PATHTO_FNC(remoteEvent); PATHTO_FNC(targetEvent); + PATHTO_FNC(turretEvent); PATHTO_FNC(ownerEvent); PATHTO_FNC(addMarkerEventHandler); PATHTO_FNC(removeMarkerEventHandler); diff --git a/addons/events/XEH_preInit.sqf b/addons/events/XEH_preInit.sqf index 74fe1c2f3..5e480a37b 100644 --- a/addons/events/XEH_preInit.sqf +++ b/addons/events/XEH_preInit.sqf @@ -21,6 +21,7 @@ if (isServer) then { if (isServer) then { TEVENT_PVAR_STR addPublicVariableEventHandler {(_this select 1) call CBA_fnc_targetEvent}; + TUEVENT_PVAR_STR addPublicVariableEventHandler {(_this select 1) call CBA_fnc_turretEvent}; }; }; diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf new file mode 100644 index 000000000..49a6a8bd0 --- /dev/null +++ b/addons/events/fnc_turretEvent.sqf @@ -0,0 +1,48 @@ +#include "script_component.hpp" +/* ---------------------------------------------------------------------------- +Function: CBA_fnc_turretEvent + +Description: + Raises a CBA event on the machine where the vehicle's turret is local. + +Parameters: + _eventName - Type of event to publish. + _params - Parameters to pass to the event handlers. + _vehicle - Vehicle to which the turret belongs. + _turretPath - The turret to execute on. + +Returns: + None + +Examples: + (begin example) + ["test", ["target"], cursorObject, [-1]] call CBA_fnc_turretEvent; + (end) + +Author: + NeilZar +---------------------------------------------------------------------------- */ +SCRIPT(turretEvent); + +params [["_eventName", "", [""]], ["_params", []], ["_vehicle", objNull, [objNull]], ["_turretPath", [-1], [[]]]]; + +// Execute locally if turret is local +if (_vehicle turretLocal _turretPath) exitWith { + CALL_EVENT(_params,_eventName); +}; + +if (isServer) then { + // Retrieve turretOwner and send the event to the owner + private _turretOwner = _vehicle turretOwner _turretPath; + + if (_turretOwner == 0) then { + private _turretOwner = owner _vehicle; + }; + + SEND_EVENT_TO_CLIENT(_params,_eventName,_turretOwner); +} else { + // only server knows object owners. let server handle the event. + SEND_TEVENT_TO_SERVER(_params,_eventName,_remoteTargets); +}; + +nil diff --git a/addons/events/script_component.hpp b/addons/events/script_component.hpp index 08bc8ac2c..238eb99df 100644 --- a/addons/events/script_component.hpp +++ b/addons/events/script_component.hpp @@ -31,6 +31,12 @@ #define SEND_TEVENT_TO_SERVER(params,name,targets) TEVENT_PVAR = [name, params, targets]; publicVariableServer TEVENT_PVAR_STR +// turret events +#define TUEVENT_PVAR CBAr +#define TUEVENT_PVAR_STR QUOTE(TUEVENT_PVAR) + +#define SEND_TUEVENT_TO_SERVER(params,name,vehicle,turret) TUEVENT_PVAR = [name, params, vehicle, turret]; publicVariableServer TUEVENT_PVAR_STR + #define CALL_EVENT(args,event) {\ if !(isNil "_x") then {\ args call _x;\ From 2b53e1b1ff8d06ab8f6938476eaa97cd22fb179f Mon Sep 17 00:00:00 2001 From: NeilZar Date: Wed, 2 Oct 2019 18:51:13 +0200 Subject: [PATCH 099/116] Couple changes that weren't saved --- addons/events/fnc_turretEvent.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf index 49a6a8bd0..61e00184d 100644 --- a/addons/events/fnc_turretEvent.sqf +++ b/addons/events/fnc_turretEvent.sqf @@ -16,7 +16,7 @@ Returns: Examples: (begin example) - ["test", ["target"], cursorObject, [-1]] call CBA_fnc_turretEvent; + ["test", ["turret"], cursorObject, [-1]] call CBA_fnc_turretEvent; (end) Author: @@ -42,7 +42,7 @@ if (isServer) then { SEND_EVENT_TO_CLIENT(_params,_eventName,_turretOwner); } else { // only server knows object owners. let server handle the event. - SEND_TEVENT_TO_SERVER(_params,_eventName,_remoteTargets); + SEND_TUEVENT_TO_SERVER(_params,_eventName,_vehicle,_turretPath); }; nil From d028d7979b48c779d0dca99dfefed65e4ccae5b9 Mon Sep 17 00:00:00 2001 From: NeilZar Date: Wed, 2 Oct 2019 18:55:22 +0200 Subject: [PATCH 100/116] update comments --- addons/events/fnc_turretEvent.sqf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf index 61e00184d..10c4c2da1 100644 --- a/addons/events/fnc_turretEvent.sqf +++ b/addons/events/fnc_turretEvent.sqf @@ -26,13 +26,12 @@ SCRIPT(turretEvent); params [["_eventName", "", [""]], ["_params", []], ["_vehicle", objNull, [objNull]], ["_turretPath", [-1], [[]]]]; -// Execute locally if turret is local if (_vehicle turretLocal _turretPath) exitWith { CALL_EVENT(_params,_eventName); }; if (isServer) then { - // Retrieve turretOwner and send the event to the owner + // retrieve the turret owner and send the event private _turretOwner = _vehicle turretOwner _turretPath; if (_turretOwner == 0) then { @@ -41,7 +40,7 @@ if (isServer) then { SEND_EVENT_TO_CLIENT(_params,_eventName,_turretOwner); } else { - // only server knows object owners. let server handle the event. + // only server knows turret owners. let server handle the event. SEND_TUEVENT_TO_SERVER(_params,_eventName,_vehicle,_turretPath); }; From 7af94f75bcce635b431acdd635042cf28a917c9e Mon Sep 17 00:00:00 2001 From: NeilZar Date: Wed, 2 Oct 2019 19:36:27 +0200 Subject: [PATCH 101/116] Replace CBAr with CBAv Co-Authored-By: commy2 --- addons/events/script_component.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/events/script_component.hpp b/addons/events/script_component.hpp index 238eb99df..15b59f33f 100644 --- a/addons/events/script_component.hpp +++ b/addons/events/script_component.hpp @@ -32,7 +32,7 @@ #define SEND_TEVENT_TO_SERVER(params,name,targets) TEVENT_PVAR = [name, params, targets]; publicVariableServer TEVENT_PVAR_STR // turret events -#define TUEVENT_PVAR CBAr +#define TUEVENT_PVAR CBAv #define TUEVENT_PVAR_STR QUOTE(TUEVENT_PVAR) #define SEND_TUEVENT_TO_SERVER(params,name,vehicle,turret) TUEVENT_PVAR = [name, params, vehicle, turret]; publicVariableServer TUEVENT_PVAR_STR From a33b3b5e7ea333690ee2ffdf56b27ae7457365b3 Mon Sep 17 00:00:00 2001 From: NeilZar Date: Wed, 2 Oct 2019 22:34:45 +0200 Subject: [PATCH 102/116] remove private where it shouldn't have been --- addons/events/fnc_turretEvent.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf index 10c4c2da1..f21e6d41e 100644 --- a/addons/events/fnc_turretEvent.sqf +++ b/addons/events/fnc_turretEvent.sqf @@ -35,7 +35,7 @@ if (isServer) then { private _turretOwner = _vehicle turretOwner _turretPath; if (_turretOwner == 0) then { - private _turretOwner = owner _vehicle; + _turretOwner = owner _vehicle; }; SEND_EVENT_TO_CLIENT(_params,_eventName,_turretOwner); From 549cc5557755c0589577856ce4d83fd3833155ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ozan=20E=C4=9Fitmen?= Date: Thu, 3 Oct 2019 18:56:28 +0300 Subject: [PATCH 103/116] Add missing Turkish Translations --- addons/ai/stringtable.xml | 1 + addons/common/stringtable.xml | 1 + addons/disposable/stringtable.xml | 10 ++++++++++ addons/events/stringtable.xml | 8 ++++++++ addons/optics/stringtable.xml | 4 ++++ addons/ui/stringtable.xml | 7 +++++++ optionals/legacy_jr/stringtable.xml | 1 + 7 files changed, 32 insertions(+) diff --git a/addons/ai/stringtable.xml b/addons/ai/stringtable.xml index 9dbecdbbf..e1a673105 100644 --- a/addons/ai/stringtable.xml +++ b/addons/ai/stringtable.xml @@ -18,6 +18,7 @@ AI Building Position KI Gebäudeposition Poloha stavby AI + AI Bina Pozisyonu diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index d830dc0c8..30319fa62 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -31,6 +31,7 @@ Armi CBA CBA 武器 Zbraně CBA + CBA Silahları diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index 804fee5cc..da559225a 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -6,60 +6,70 @@ Community Base Addons - Einwegwaffen Community Base Addons - 使い捨て武器 Community Base Addons - Jednorázové zbraně + Community Base Addons - Tek Kullanımlık Silahlar Drop Used Disposable Launcher Benutzten Einwegwerfer ablegen 使った使い捨てランチャーを落とす Odhodit použitý jednorázový raketomet + Kullanılan Tek Kullanımlık Roketleri At Never Niemals 行わない Nikdy + Asla Don't automatically drop the used disposable launcher. Benutzten Einwegwerfer nicht automatisch ablegen. 使った使い捨てランチャーを自動的に落とさないようにします。 Automaticky neodhazovat použitý jednorázový raketomet. + Otomatik olarak tek kullanımlık roketleri atma. AI Only Nur KI AI のみ Pouze AI + Sadece AI Only AI drops the used disposable launcher. Nur KI legt den benutzten Einwegwerfer ab. AI のみ使った使い捨てランチャーを落とすようにします。 Pouze AI odhodí použitý jednorázový raketomet. + Sadece yapay zeka tek kullanımlık roketleri atar. Selected Another Weapon Andere Waffe ausgewählt 別の武器が選択後 Vybrána jiná zbraň + Başka Bir Silah Seçince Automatically drop the used disposable launcher as soon as another weapon is selected. Benutzten Einwegwerfer automatisch ablegen, sobald eine andere Waffe ausgewählt wurde. 他の武器を選択すると即時に使った使い捨てランチャーを自動的に落とすようにします。 Automaticky odhodit použitý jednorázový raketomet, jakmile je zvolena jiná zbraň. + Başka bir silah seçildiği zaman otomatik olarak tek kullanımlık roketleri at. Replace Disposable Launcher Einwegwerfer ersetzten 使い捨てランチャーを置換 Vyměnit jednorázový raketomet + Tek Kullanımlık Roketleri Değiştir If enabled, disposable launchers can only be used once. Ammunition for disposable launchers in containers and vehicles will be replaced with loaded disposable launchers. If disabled, disposable launchers can be reloaded after use. Wenn aktiviert, dann können Einwegwerfer nur einmal benutzt werden. Munition für Einwegwerfer in Kisten und Fahrzeugen wird durch geladene Einwegwerfer ersetzt. Wenn deaktiviert, dann können Einwegwerfer nach der Benutzung nachgeladen werden. 有効化すると、使い捨てランチャーは一度のみ使用できます。コンテナ内にある使い捨てランチャーは装填された使い捨てランチャーに置き換えられます。無効化すると、使用後に使い捨てランチャーをリロードできます。 Pokud je tato možnost zapnuta, jednorázové raketomety mohou být použity pouze jednou. Munice pro jednorázové raketomety v bednách a vozidlech budou vyměněny za nabité jednorázové raketomety. Pokud je tato možnost vypnuta, jednorázové raketomety mohou být přebity po použití. + Eğer bu ayar açıksa, tek kullanımlık roketler sadece bir kere kullanılabilir. Tek kullanımlık rokeyler için cephane başka tek kullanımlık roketler ile değiştirilir. Bu ayar kapalıyken tek kullanımlık roketler de birçok kez kullanılabilir. diff --git a/addons/events/stringtable.xml b/addons/events/stringtable.xml index fb4026206..734ad9236 100644 --- a/addons/events/stringtable.xml +++ b/addons/events/stringtable.xml @@ -20,6 +20,7 @@ Tryb powtarzania strzału 武器反復モード Mód opakování zbraně + Silah Tekrar Modu Mode of bolting or pumping weapons. @@ -27,6 +28,7 @@ Tryb przeładowania/ryglowania broni po wystrzale. ボルト、またはポンプ式武器のモードを決定します。 Mód natahování nebo pumpování zbraní. + Silahın sürgülü ya da pompalı modda olması. Leave Optics View @@ -34,6 +36,7 @@ Opuszczenie optyki 照準画面を離れる Opustit pohled optiky + Dürbünden Çık Bolt or rack weapon by leaving optics view. @@ -41,6 +44,7 @@ Przeładowanie/ryglowanie broni nastąpi po opuszczeniu widoku optyki. ボルトかポンプ動作時は照準画面から離れます Natáhnout zbraň opuštěním pohledu optiky. + Silahı sürgülerken dürbünü kapat. Release Trigger @@ -48,6 +52,7 @@ Puszczenie spustu トリガー解放時 Pustit spoušť + Tetiği Bırak Bolt or rack weapon by releasing trigger (hold trigger to prevent immediate action). @@ -55,6 +60,7 @@ Przeładowanie/ryglowanie nastąpi po puszczeniu spustu (przytrzymaj spust aby nie przełdowywać). トリガーを離してボルトかポンプ動作を行います。(トリガー長押しで即時動作を防止) Natáhnout zbraň puštěním spouště (podržte spoušť k zabránění okamžitému natáhnutí zbraně). + Silahın sürgüsünü çekmek için tetiği bırak (Tetiğe basılı tutarak sürgülemeyi engelle). Press Trigger @@ -62,6 +68,7 @@ Wciśnięcie spustu トリガー引いた時 Zmáčknout spoušť + Tetiğe Bas Bolt or rack weapon by pressing the trigger again. @@ -69,6 +76,7 @@ Przeładowanie/ryglowanie nastąpi po ponownym wciśnięciu spustu. トリガーを再度引いてボルトかポンプ動作を行います。 Natáhnout zbraň dalším zmáčkutím spouště. + Silahın sürgüsünü çekmek için tetiğe bas. diff --git a/addons/optics/stringtable.xml b/addons/optics/stringtable.xml index 2d75f0fc0..902441067 100644 --- a/addons/optics/stringtable.xml +++ b/addons/optics/stringtable.xml @@ -8,6 +8,7 @@ Community Base Addons - Ottiche Community Base Addons - 照準器 Community Base Addons - Optika + Community Base Addons - Optikler Use picture in picture optics @@ -16,16 +17,19 @@ Używaj optyki typu Obraz w obrazie (PIP) Usa ottiche on Picture-in-Picture Používat PiP (obraz-v-obrazu) optiky + PIP optikler kullan Toggle Reticle Absehen umschalten Zapnout retikulum + Dürbün çizgilerini değiştir Manually switch the reticle of the optic. Absehen der Optik manuell umschalten. Manuálně přepnout retikulum optiky + Dürbünün çizgilerini elle değiştirmek için. diff --git a/addons/ui/stringtable.xml b/addons/ui/stringtable.xml index f86c25b43..046e00fee 100644 --- a/addons/ui/stringtable.xml +++ b/addons/ui/stringtable.xml @@ -137,6 +137,7 @@ 通知 Notifica Upozornění + Bildirim Textual feedback to the player. @@ -145,6 +146,7 @@ 文章でプレイヤーに通知します。 Notifica testuale al giocatore. Textová zpětná vazba hráči. + Yazıyla geri bildirim. Show all missions @@ -153,6 +155,7 @@ Pokaż wszystkie misje Mostra tutte le missioni Ukázat všechny mise + Tüm görevleri göster Show custom missions @@ -161,18 +164,22 @@ Pokaż własne/wgrane misje Mostra missioni custom Ukázat vlastní mise + Sonradan eklenen görevleri göster Notification Lifetime Doba trvání upozornění + Bildirim Süresi Notification display duration in seconds. Jak dlouho bude upozornění ukázáno (v sekundách). + Bildirim gözükme süresi (saniye olarak) Contact the server admin. Serveradministrator benachrichtigen. + Sunucu yöneticisiyle iletişime geç. diff --git a/optionals/legacy_jr/stringtable.xml b/optionals/legacy_jr/stringtable.xml index 56eb5f605..86df577d6 100644 --- a/optionals/legacy_jr/stringtable.xml +++ b/optionals/legacy_jr/stringtable.xml @@ -5,6 +5,7 @@ Community Base Addons - Legacy Joint Rails Community Base Addons - Legacy-Joint Rails Community Base Addons - Legacy Joint Rails + Community Base Addons - Legacy Joint Rails From e4042c27173761ce803c5747518cc4e60c18ea9c Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Wed, 9 Oct 2019 13:19:27 -0500 Subject: [PATCH 104/116] XEH - Fix version report in rpt --- addons/xeh/fnc_preInit.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/xeh/fnc_preInit.sqf b/addons/xeh/fnc_preInit.sqf index f685f6d0c..c071f33b6 100644 --- a/addons/xeh/fnc_preInit.sqf +++ b/addons/xeh/fnc_preInit.sqf @@ -23,7 +23,7 @@ SETPROCESSED(missionNamespace); SLX_XEH_DisableLogging = uiNamespace getVariable ["SLX_XEH_DisableLogging", false]; // get from preStart -XEH_LOG("XEH: PreInit started. v" + getText (configFile >> "CfgPatches" >> "cba_common" >> "version")); +XEH_LOG("XEH: PreInit started. v" + getText (configFile >> "CfgPatches" >> "cba_common" >> "versionStr")); SLX_XEH_STR = ""; // does nothing, never changes, backwards compatibility SLX_XEH_COMPILE = compileFinal "compile preprocessFileLineNumbers _this"; //backwards comps From f0097f25d2ab87959abf02fd390226ce49ed6386 Mon Sep 17 00:00:00 2001 From: NeilZar Date: Thu, 10 Oct 2019 18:57:07 +0200 Subject: [PATCH 105/116] Ignore invalid turrets --- addons/events/fnc_turretEvent.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf index f21e6d41e..5a675cb8c 100644 --- a/addons/events/fnc_turretEvent.sqf +++ b/addons/events/fnc_turretEvent.sqf @@ -32,10 +32,10 @@ if (_vehicle turretLocal _turretPath) exitWith { if (isServer) then { // retrieve the turret owner and send the event - private _turretOwner = _vehicle turretOwner _turretPath; - - if (_turretOwner == 0) then { - _turretOwner = owner _vehicle; + private _turretOwner = if (_turretPath isEqualTo [-1]) then { + owner _vehicle; + } else { + _vehicle turretOwner _turretPath; }; SEND_EVENT_TO_CLIENT(_params,_eventName,_turretOwner); From b1ef95651f1955b29647e4cd24e178d14e6f8ec7 Mon Sep 17 00:00:00 2001 From: NeilZar Date: Fri, 11 Oct 2019 00:14:12 +0200 Subject: [PATCH 106/116] Consider [] as driver --- addons/events/fnc_turretEvent.sqf | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf index 5a675cb8c..bce43c46d 100644 --- a/addons/events/fnc_turretEvent.sqf +++ b/addons/events/fnc_turretEvent.sqf @@ -26,16 +26,21 @@ SCRIPT(turretEvent); params [["_eventName", "", [""]], ["_params", []], ["_vehicle", objNull, [objNull]], ["_turretPath", [-1], [[]]]]; +if (_turretPath isEqualTo []) then { + _turretPath = [-1]; +}; + if (_vehicle turretLocal _turretPath) exitWith { CALL_EVENT(_params,_eventName); }; if (isServer) then { // retrieve the turret owner and send the event - private _turretOwner = if (_turretPath isEqualTo [-1]) then { - owner _vehicle; + private "_turretOwner"; + if (_turretPath isEqualTo [-1]) then { + _turretOwner = owner _vehicle; } else { - _vehicle turretOwner _turretPath; + _turretOwner = _vehicle turretOwner _turretPath; }; SEND_EVENT_TO_CLIENT(_params,_eventName,_turretOwner); From b74c35d7896470dcfaf1cd29fbf51e049250e788 Mon Sep 17 00:00:00 2001 From: NeilZar Date: Fri, 11 Oct 2019 01:31:04 +0200 Subject: [PATCH 107/116] Fix whitespace Co-Authored-By: jonpas --- addons/events/fnc_turretEvent.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf index bce43c46d..b9203cfe7 100644 --- a/addons/events/fnc_turretEvent.sqf +++ b/addons/events/fnc_turretEvent.sqf @@ -27,7 +27,7 @@ SCRIPT(turretEvent); params [["_eventName", "", [""]], ["_params", []], ["_vehicle", objNull, [objNull]], ["_turretPath", [-1], [[]]]]; if (_turretPath isEqualTo []) then { - _turretPath = [-1]; + _turretPath = [-1]; }; if (_vehicle turretLocal _turretPath) exitWith { From 7bb6cd1311c4451a837678133075d259a0936111 Mon Sep 17 00:00:00 2001 From: NeilZar Date: Fri, 11 Oct 2019 01:59:37 +0200 Subject: [PATCH 108/116] Add extra param information --- addons/events/fnc_turretEvent.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/events/fnc_turretEvent.sqf b/addons/events/fnc_turretEvent.sqf index b9203cfe7..a3bbb583e 100644 --- a/addons/events/fnc_turretEvent.sqf +++ b/addons/events/fnc_turretEvent.sqf @@ -9,7 +9,7 @@ Parameters: _eventName - Type of event to publish. _params - Parameters to pass to the event handlers. _vehicle - Vehicle to which the turret belongs. - _turretPath - The turret to execute on. + _turretPath - The turret to execute on. Will accept both [] and [-1] for driver's turret. Returns: None From 10324699588998769d799c5489381135ac442d92 Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 17 Oct 2019 20:40:31 -0500 Subject: [PATCH 109/116] Statemachine - Trivial performance changes --- addons/statemachine/fnc_clockwork.sqf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/statemachine/fnc_clockwork.sqf b/addons/statemachine/fnc_clockwork.sqf index 97a85296f..4aa130f51 100644 --- a/addons/statemachine/fnc_clockwork.sqf +++ b/addons/statemachine/fnc_clockwork.sqf @@ -23,7 +23,6 @@ SCRIPT(clockwork); private _stateMachine = _x; private _list = _stateMachine getVariable QGVAR(list); private _skipNull = _stateMachine getVariable QGVAR(skipNull); - private _updateCode = _stateMachine getVariable QGVAR(updateCode); private _id = _stateMachine getVariable QGVAR(ID); private _tick = _stateMachine getVariable QGVAR(tick); @@ -36,6 +35,7 @@ SCRIPT(clockwork); // When the list was iterated through, jump back to start and update it if (_tick >= count _list) then { + private _updateCode = _stateMachine getVariable QGVAR(updateCode); _tick = 0; if !(_updateCode isEqualTo {}) then { _list = [] call _updateCode; @@ -102,5 +102,4 @@ SCRIPT(clockwork); (GVAR(performanceCounters) select _id) pushBack _perfRunTime; #endif - false -} count GVAR(stateMachines); +} forEach GVAR(stateMachines); From b2829e17d2fa78e531c3d8c5175ce3f341434d0d Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Thu, 17 Oct 2019 21:12:12 -0500 Subject: [PATCH 110/116] Replace all use of count as a forEach --- addons/common/init_perFrameHandler.sqf | 6 ++---- addons/jr/fnc_compatibleItems.sqf | 9 +++------ addons/statemachine/fnc_createFromConfig.sqf | 9 +++------ addons/xeh/fnc_addClassEventHandler.sqf | 3 +-- addons/xeh/fnc_preInit.sqf | 4 ++-- addons/xeh/fnc_startFallbackLoop.sqf | 3 +-- 6 files changed, 12 insertions(+), 22 deletions(-) diff --git a/addons/common/init_perFrameHandler.sqf b/addons/common/init_perFrameHandler.sqf index d0b10f3f5..795211f42 100644 --- a/addons/common/init_perFrameHandler.sqf +++ b/addons/common/init_perFrameHandler.sqf @@ -34,9 +34,8 @@ GVAR(waitUntilAndExecArray) = []; if (diag_tickTime > _delta) then { _x set [2, _delta + _delay]; [_args, _handle] call _function; - false }; - } count GVAR(perFrameHandlerArray); + } forEach GVAR(perFrameHandlerArray); // Execute wait and execute functions @@ -64,8 +63,7 @@ GVAR(waitUntilAndExecArray) = []; // Execute the exec next frame functions { (_x select 0) call (_x select 1); - false - } count GVAR(nextFrameBufferA); + } forEach GVAR(nextFrameBufferA); // Swap double-buffer: GVAR(nextFrameBufferA) = GVAR(nextFrameBufferB); GVAR(nextFrameBufferB) = []; diff --git a/addons/jr/fnc_compatibleItems.sqf b/addons/jr/fnc_compatibleItems.sqf index 7acd57d41..02ea91a53 100644 --- a/addons/jr/fnc_compatibleItems.sqf +++ b/addons/jr/fnc_compatibleItems.sqf @@ -44,20 +44,17 @@ if (isNil "_compatibleItems") then { if (isArray _cfgCompatibleItems) then { { _compatibleItems pushBackUnique _x; - nil - } count getArray _cfgCompatibleItems; + } forEach getArray _cfgCompatibleItems; } else { if (isClass _cfgCompatibleItems) then { { if (getNumber _x > 0) then { _compatibleItems pushBackUnique configName _x; }; - nil - } count configProperties [_cfgCompatibleItems, "isNumber _x"]; + } forEach configProperties [_cfgCompatibleItems, "isNumber _x"]; }; }; - nil - } count configProperties [_cfgWeapon >> "WeaponSlotsInfo", "isclass _x"]; + } forEach configProperties [_cfgWeapon >> "WeaponSlotsInfo", "isclass _x"]; GVAR(namespace) setVariable [_weapon, _compatibleItems]; //save entry in cache } else { diff --git a/addons/statemachine/fnc_createFromConfig.sqf b/addons/statemachine/fnc_createFromConfig.sqf index 77a7657e9..3607bb0de 100644 --- a/addons/statemachine/fnc_createFromConfig.sqf +++ b/addons/statemachine/fnc_createFromConfig.sqf @@ -37,8 +37,7 @@ private _stateMachine = [_list, _skipNull] call FUNC(create); GET_FUNCTION(_onStateLeaving,_x >> "onStateLeaving"); [_stateMachine, _onState, _onStateEntered, _onStateLeaving, _state] call FUNC(addState); - false -} count (configProperties [_config, "isClass _x", true]); +} forEach (configProperties [_config, "isClass _x", true]); // We need to add the transitions in a second loop to make sure the states exist already { @@ -59,10 +58,8 @@ private _stateMachine = [_list, _skipNull] call FUNC(create); [_stateMachine, _state, _targetState, _events, _condition, _onTransition, _transition] call FUNC(addEventTransition); }; - false - } count (configProperties [_x, "isClass _x", true]); + } forEach (configProperties [_x, "isClass _x", true]); - false -} count (configProperties [_config, "isClass _x", true]); +} forEach (configProperties [_config, "isClass _x", true]); _stateMachine diff --git a/addons/xeh/fnc_addClassEventHandler.sqf b/addons/xeh/fnc_addClassEventHandler.sqf index 58c858144..fc7d5983b 100644 --- a/addons/xeh/fnc_addClassEventHandler.sqf +++ b/addons/xeh/fnc_addClassEventHandler.sqf @@ -79,8 +79,7 @@ _entities = _entities arrayIntersect _entities; // entities can return duplicate }; }; }; - true -} count _entities; +} forEach _entities; // define for units that are created later private _events = EVENTHANDLERS(_eventName,_className); diff --git a/addons/xeh/fnc_preInit.sqf b/addons/xeh/fnc_preInit.sqf index c071f33b6..34c6628ee 100644 --- a/addons/xeh/fnc_preInit.sqf +++ b/addons/xeh/fnc_preInit.sqf @@ -63,11 +63,11 @@ GVAR(EventsLowercase) = []; FUNC(Init) = compileFinal (_header + "(_this select 0) call CBA_fnc_initEvents; (_this select 0) call CBA_fnc_init"); } else { if (_x isEqualTo "HitPart") then { - FUNC(HitPart) = compileFinal (_header + format ['{call _x; nil} count ((_this select 0 select 0) getVariable QGVAR(%1))', _x]); + FUNC(HitPart) = compileFinal (_header + format ['{call _x} forEach ((_this select 0 select 0) getVariable QGVAR(%1))', _x]); } else { missionNamespace setVariable [ format [QFUNC(%1), _x], - compileFinal (_header + format ['{call _x; nil} count ((_this select 0) getVariable QGVAR(%1))', _x]) + compileFinal (_header + format ['{call _x} forEach ((_this select 0) getVariable QGVAR(%1))', _x]) ]; }; }; diff --git a/addons/xeh/fnc_startFallbackLoop.sqf b/addons/xeh/fnc_startFallbackLoop.sqf index c48be4d6f..f46231cd0 100644 --- a/addons/xeh/fnc_startFallbackLoop.sqf +++ b/addons/xeh/fnc_startFallbackLoop.sqf @@ -28,8 +28,7 @@ GVAR(fallbackRunning) = true; { // don't run init and initPost event handlers on objects that already exist SETINITIALIZED(_x); - true -} count (entities [[], [], true, true]); +} forEach (entities [[], [], true, true]); GVAR(entities) = []; From 79fe85b5a249f276d13882b2c7c34bb16ca255af Mon Sep 17 00:00:00 2001 From: PabstMirror Date: Fri, 18 Oct 2019 11:17:12 -0500 Subject: [PATCH 111/116] Update fnc_startFallbackLoop.sqf --- addons/xeh/fnc_startFallbackLoop.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/xeh/fnc_startFallbackLoop.sqf b/addons/xeh/fnc_startFallbackLoop.sqf index f46231cd0..f8e8e5271 100644 --- a/addons/xeh/fnc_startFallbackLoop.sqf +++ b/addons/xeh/fnc_startFallbackLoop.sqf @@ -28,7 +28,7 @@ GVAR(fallbackRunning) = true; { // don't run init and initPost event handlers on objects that already exist SETINITIALIZED(_x); -} forEach (entities [[], [], true, true]); +} count (entities [[], [], true, true]); // count is safe here because SETINITIALIZED is a setVariable, which returns nil GVAR(entities) = []; From 4c342f68f6815016a07b800a1114a58635844c0e Mon Sep 17 00:00:00 2001 From: JonBons Date: Thu, 24 Oct 2019 18:34:26 -0500 Subject: [PATCH 112/116] Scaled cba_optic_big_pip and cba_optic_small_pip models outwards on the sides to support 21:9 aspect ratio screens. --- addons/optics/cba_optic_big_pip.p3d | Bin 17778 -> 17942 bytes addons/optics/cba_optic_small_pip.p3d | Bin 17778 -> 17942 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/addons/optics/cba_optic_big_pip.p3d b/addons/optics/cba_optic_big_pip.p3d index 5651705eb3f58efaf4f161299394f899900953a1..1aef31e6469e89acf840edb5d492924e70f0948b 100644 GIT binary patch delta 840 zcmey=#W<~pae{{OkFObyN_xll%)7^H#{dK}k1`zFMcW+;ZbJBH)?`fd_I2K#mU(bR zE3YF=xTGWVUNo&17N~#XZC_!aX^z3KxemgFfwpb7X4GXA ze)l26G2r$;dzi%KlNpn%nPQEFD>Dx+G`$0N&ee&T2cwbHf%pMkOmKUE>L+tE#|i`W zJBlB;3l|5Pzqy(@m$Cj$f~0lEQvu5h|LgZ>f0MOtSg~^bIUqZ2vW#_RMTzBkAloxf z-a6<`?FNweCOLlV^|9WT*MaPdTEf=%LvCAM0kYcL^KR`|99DOL;(|4dyLHvuz*bDp722Kr@Fv(9jahuV zzq5IQo%jBL^zQ5Li@;u+H&tTywh(^H%Rs$L6l8aQKD0s~D@c-7wrVGy(a@T=m_t;2xK3~652gM`OeO(Kz4dP-)@;YpPe^>?3otKyHo#j>;gHc zY#!ro&HC=0Aoju4lXjIkE9?gO^TkS+T_InLckcnRGv_?m)fL{m+XKk<5WTZ=X;uI3 zI3W9Z{bVinP4(&WcP%X{`*+6zg>=#Pt&iX11Y1AVnBO}5s^88VKs8s?g{=jr-`xp{mgYD~Yv;WpJ1+s*pE_i$Ei+1X zg8a=4Oxh}-^bG{1A`A{Qm~L#2=1|d9P!3MbNlh+EO;Ki;0+eH9WCW{$5sZ^3+6oJz P2{M30<2Tote&GiI|AT;B delta 781 zcmbQ%!}zI-ae{`jwx*AxlHTz>^X~E5F#v(TsE=d2XuCtfO$h)0eea3hzRs^^`W#%* z%IgRdUcTGsUNo&17N~#XZC_!aX^z3KxemgFfwpb7X4GXA zR#fqE47mNz9wx!|*L!j`Q>?Mu8lQs;P4B>+!*SH-U^J3C5I>-c32qNi{bX+DSYe=k zNAUx9;o?B^H&-*~GS*M#^R%8SYj3&XfBk+JhCu5Bl@Hdh0 zWWQd#%PR7%i1lG0Ti{EFRl|RI>mxw6<0(d~A3YsR*4dLYSr6B^?O|BHM2AaODApxxVlsMH&* z1aj_)`0f__Fn=e=&u(kncfXwFuyZ4jUFc}Lo7;_V*A5_C>X6y)9Hr)+APdUps_dS6 zM|;;XAe&uEX?J$Xx}B$h?8@YwyXuo_Im(5l$>U6;D9jwaM zKc;Qic^WAGW|FG4tfuZRP>?@;Wo|8dsbwd~n)9`G)&V*EyS4+_k2pN7!@fK11o=Cp o$k diff --git a/addons/optics/cba_optic_small_pip.p3d b/addons/optics/cba_optic_small_pip.p3d index e61b06c222011784d21d8f8e4270512aa37cfb02..09327337780155ed599ecdf5104bd3dcc6627029 100644 GIT binary patch delta 817 zcmey=#W<~pae{{OkFObyN_xll%)7^H#{dK}k1`zFMcW+;ZbJBH)?`fd_I2K#mU(bR zE3YF=xTGWVUNo&17N~#XZC_!aX^z3KxemgFfwpb7X4GXA ze)l26G2r$;dzi%KlNpn%nPQEFD>Dx+G`$0N&ee&T2cwbHf%pMkOmKUE>L+tE#|i`W zJBlB;3l|5Pzqy(@m$Ck8-ybXG;{6s6|JUyixyNAr?TPq?2SB#K`u|qTB@HY=?57(T zt=;@vH{1iVQ#O6D`oqO(`54Haxbm}=_=&lekAUn0AMaZ&3Oi}}9LTm zbsPS*x(#H%xTmp;kC)5(8ju|MMVq`#?2XHNSVIS?sj{`GqNfVYid*bbXM2eH9sZ^DSeoHvoCe zyzAdCJ`w$$APr(Azjw8{9o+#^v~B*UU8+&@cY-`Ad+q(MPtUn_f;>OX>i(`K=My`h z0ohCW9_&(B;k5H9kgX$^xT_l74saTW;gz6fMLe%QO~@>IXwOMq++tM;8~ z@8WjP1G25}Pu61JRNr~8-SXt~xZQJsLWX8ZR=)!vMuhSxSv7=0jJWyoft4n&>rPM@ z|Ce}RWnFg?Y`x^A4_1XsdB9HGxbU-8W$1#PAipkZ`(t&p;rI@4{4Dx!3|=lyY!tPHJ*VYKk($6o@p4WCViA6KxfkA#~d2I@2%w E0J0a3k^lez delta 778 zcmbQ%!}zI-ae{`jwx*AxlHTz>^X~E5F#v(TsE=d2XuCtfO$h)0eea3hzRs^^`W#%* z%IgRdUcTGsUNo&17N~#XZC_!aX^z3KxemgFfwpb7X4GXA zR#fqE47mNz9wx!|*L!j`Q>?Mu8lQs;P4B>+!*SH-U^J3C5I>-c32qNi{bX+DSYe=k zNAUx9;o?B^H&-*~GS%;}-l%YfpI?ESk$ zUwpO#shO=Gw@c^~M7`8`w%wU`K7!3(n8UtXO(h9zzF&ms?)fthg5BVyEWF$8wVLG> zpkBjjx!p6Eqbx!G@)DKV?Q-r7*pJQv3cEq^3KB03Q{27#w_3dc$diW)<#x~c7P%87 z;leMod+NO}J3tWG(hh z^@kTMxAgCb-8~N|q@CJlWggG4`x=lvS2oP*-9PT#mw{|kc@FD6EqOa{1KGiC?ADcA zKZDurpM|Z@U(neJveHmQ%z9zR(VZamzaGh0Gd%ge;{uSK>Md{0pBugN9FWZn^uG!y Z5P+amgu!73(~Zs194fk-mCZi$0{~BeaeDv& From 25285efcd09fb155f1ac10134d8f7236f9164e32 Mon Sep 17 00:00:00 2001 From: JonBons Date: Thu, 24 Oct 2019 18:35:48 -0500 Subject: [PATCH 113/116] Adjusted CBA optic camera FOV to 0.78 to account for model changes for 21:9. --- addons/optics/fnc_animateScriptedOptic.sqf | 2 +- addons/optics/fnc_restartCamera.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/optics/fnc_animateScriptedOptic.sqf b/addons/optics/fnc_animateScriptedOptic.sqf index b21e512d0..97465b37c 100644 --- a/addons/optics/fnc_animateScriptedOptic.sqf +++ b/addons/optics/fnc_animateScriptedOptic.sqf @@ -63,7 +63,7 @@ GVAR(camera) camCommitPrepared 0; // @todo, check if that needs to be done at all if (cameraView == "GUNNER") then { - GVAR(camera) camSetFOV 0.7; + GVAR(camera) camSetFOV 0.78; GVAR(camera) camCommit 0; } else { GVAR(camera) camSetFOV 0.01; diff --git a/addons/optics/fnc_restartCamera.sqf b/addons/optics/fnc_restartCamera.sqf index a705978ac..702e4ec59 100644 --- a/addons/optics/fnc_restartCamera.sqf +++ b/addons/optics/fnc_restartCamera.sqf @@ -33,7 +33,7 @@ if (_reset) then { // PIP technique by BadBenson GVAR(camera) = "camera" camCreate positionCameraToWorld [0,0,0]; - GVAR(camera) camSetFov 0.7; + GVAR(camera) camSetFov 0.78; GVAR(camera) camSetTarget _unit; GVAR(camera) camCommit 1; From 78e23c1f03c5a37f4d498132fc8c03a122dbead5 Mon Sep 17 00:00:00 2001 From: JonBons Date: Sat, 26 Oct 2019 15:00:36 -0500 Subject: [PATCH 114/116] Adjusted CBA optic camera FOV to 1.02 to make the camera match up with what you saw before scoping in. See https://github.com/CBATeam/CBA_A3/pull/1245#issuecomment-546634667 for comparison of old value. --- addons/optics/fnc_animateScriptedOptic.sqf | 2 +- addons/optics/fnc_restartCamera.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/optics/fnc_animateScriptedOptic.sqf b/addons/optics/fnc_animateScriptedOptic.sqf index 97465b37c..30029ddea 100644 --- a/addons/optics/fnc_animateScriptedOptic.sqf +++ b/addons/optics/fnc_animateScriptedOptic.sqf @@ -63,7 +63,7 @@ GVAR(camera) camCommitPrepared 0; // @todo, check if that needs to be done at all if (cameraView == "GUNNER") then { - GVAR(camera) camSetFOV 0.78; + GVAR(camera) camSetFOV 1.02; GVAR(camera) camCommit 0; } else { GVAR(camera) camSetFOV 0.01; diff --git a/addons/optics/fnc_restartCamera.sqf b/addons/optics/fnc_restartCamera.sqf index 702e4ec59..c1e33b058 100644 --- a/addons/optics/fnc_restartCamera.sqf +++ b/addons/optics/fnc_restartCamera.sqf @@ -33,7 +33,7 @@ if (_reset) then { // PIP technique by BadBenson GVAR(camera) = "camera" camCreate positionCameraToWorld [0,0,0]; - GVAR(camera) camSetFov 0.78; + GVAR(camera) camSetFov 1.02; GVAR(camera) camSetTarget _unit; GVAR(camera) camCommit 1; From 43f4caa7fe549a30dfb700af8523b0bc6f168648 Mon Sep 17 00:00:00 2001 From: JonBons Date: Sat, 26 Oct 2019 16:16:13 -0500 Subject: [PATCH 115/116] Changed CBA optic camera FOV back to 0.75 as there is some scaling issues with increasing this value. --- addons/optics/fnc_animateScriptedOptic.sqf | 2 +- addons/optics/fnc_restartCamera.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/optics/fnc_animateScriptedOptic.sqf b/addons/optics/fnc_animateScriptedOptic.sqf index 30029ddea..640ac4fcb 100644 --- a/addons/optics/fnc_animateScriptedOptic.sqf +++ b/addons/optics/fnc_animateScriptedOptic.sqf @@ -63,7 +63,7 @@ GVAR(camera) camCommitPrepared 0; // @todo, check if that needs to be done at all if (cameraView == "GUNNER") then { - GVAR(camera) camSetFOV 1.02; + GVAR(camera) camSetFOV 0.75; GVAR(camera) camCommit 0; } else { GVAR(camera) camSetFOV 0.01; diff --git a/addons/optics/fnc_restartCamera.sqf b/addons/optics/fnc_restartCamera.sqf index c1e33b058..34324bba5 100644 --- a/addons/optics/fnc_restartCamera.sqf +++ b/addons/optics/fnc_restartCamera.sqf @@ -33,7 +33,7 @@ if (_reset) then { // PIP technique by BadBenson GVAR(camera) = "camera" camCreate positionCameraToWorld [0,0,0]; - GVAR(camera) camSetFov 1.02; + GVAR(camera) camSetFov 0.75; GVAR(camera) camSetTarget _unit; GVAR(camera) camCommit 1; From 5fe929e442ac239ccc18ef954939d963727f305d Mon Sep 17 00:00:00 2001 From: commy2 Date: Wed, 30 Oct 2019 19:56:21 +0100 Subject: [PATCH 116/116] store diary records in variables --- addons/help/XEH_postInit.sqf | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/help/XEH_postInit.sqf b/addons/help/XEH_postInit.sqf index 85cb88577..7b222be20 100644 --- a/addons/help/XEH_postInit.sqf +++ b/addons/help/XEH_postInit.sqf @@ -17,7 +17,12 @@ if (!hasInterface) exitWith {}; { (EGVAR(keybinding,addons) getVariable _x) params ["_addon", "_addonActions"]; - _keys = _keys + format ["%1:
", _addon]; + private _name = _addon; + if (isLocalized _name) then { + _name = localize _name; + }; + + _keys = _keys + format ["%1:
", _name]; { (EGVAR(keybinding,actions) getVariable (_addon + "$" + _x)) params ["_displayName", "", "_keybinds"]; @@ -37,7 +42,7 @@ if (!hasInterface) exitWith {}; // delete last line breaks _keys = _keys select [0, count _keys - 10]; - _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Help_Keys", format ["%1
%2", localize "STR_CBA_Help_Keys", _keys]], taskNull, "", false]; - _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Credits", format ["%1
%2", localize "STR_CBA_Credits", call (uiNamespace getVariable QGVAR(credits))]], taskNull, "", false]; - _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Addons", format ["%1
%2", localize "STR_CBA_Addons", call (uiNamespace getVariable QGVAR(mods))]], taskNull, "", false]; + GVAR(DiaryRecordKeys) = _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Help_Keys", format ["%1
%2", localize "STR_CBA_Help_Keys", _keys]], taskNull, "", false]; + GVAR(DiaryRecordCredits) = _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Credits", format ["%1
%2", localize "STR_CBA_Credits", call (uiNamespace getVariable QGVAR(credits))]], taskNull, "", false]; + GVAR(DiaryRecordAddons) = _unit createDiaryRecord [QGVAR(docs), [localize "STR_CBA_Addons", format ["%1
%2", localize "STR_CBA_Addons", call (uiNamespace getVariable QGVAR(mods))]], taskNull, "", false]; } call CBA_fnc_execNextFrame;