From a321ba60b015872c9014a89b42b86a0a3c403ea8 Mon Sep 17 00:00:00 2001 From: lambdatiger Date: Wed, 13 Nov 2024 16:30:34 -0600 Subject: [PATCH 1/8] Added MMG team to base spawns (#598) --- addons/zeusHC/CfgVehicles.hpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/addons/zeusHC/CfgVehicles.hpp b/addons/zeusHC/CfgVehicles.hpp index 141171043..88c9596b2 100644 --- a/addons/zeusHC/CfgVehicles.hpp +++ b/addons/zeusHC/CfgVehicles.hpp @@ -56,6 +56,11 @@ class CfgVehicles { icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; GVAR(createUnits)[] = {"potato_e_matg","potato_e_matag"}; }; + class GVAR(east_mmgTeam): GVAR(east_rifleman) { + displayName = "#MMG Team (2)"; + icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; + GVAR(createUnits)[] = {"potato_e_mmgg","potato_e_mmgag"}; + }; class GVAR(east_patrol): GVAR(east_rifleman) { displayName = "#Patrol (2)"; icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; @@ -319,6 +324,11 @@ class CfgVehicles { icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; GVAR(createUnits)[] = {"potato_w_matg","potato_w_matag"}; }; + class GVAR(west_mmgTeam): GVAR(west_rifleman) { + displayName = "#MMG Team (2)"; + icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; + GVAR(createUnits)[] = {"potato_w_mmgg","potato_w_mmgag"}; + }; class GVAR(west_patrol): GVAR(west_rifleman) { displayName = "#Patrol (2)"; icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; @@ -622,6 +632,11 @@ class CfgVehicles { icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; GVAR(createUnits)[] = {"potato_i_matg","potato_i_matag"}; }; + class GVAR(ind_mmgTeam): GVAR(ind_rifleman) { + displayName = "#MMG Team (2)"; + icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; + GVAR(createUnits)[] = {"potato_i_mmgg","potato_i_mmgag"}; + }; class GVAR(ind_patrol): GVAR(ind_rifleman) { displayName = "#Patrol (2)"; icon = "\a3\Ui_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa"; From e00b6cc756b36b0ef9d3f79c0cca560a1e5c4e89 Mon Sep 17 00:00:00 2001 From: lambdatiger Date: Wed, 13 Nov 2024 16:33:25 -0600 Subject: [PATCH 2/8] Spectate - Fix Missing Name on JIPs (#596) * Attempt at fixing "AI: " for JIPs in spectate * better method of checking/caching, ty pabst --- addons/spectate/functions/fnc_getName.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/spectate/functions/fnc_getName.sqf b/addons/spectate/functions/fnc_getName.sqf index 3c74d51ea..40812b8a0 100644 --- a/addons/spectate/functions/fnc_getName.sqf +++ b/addons/spectate/functions/fnc_getName.sqf @@ -35,7 +35,9 @@ if !(isNull _unit) then { }; _returnName = _returnName select [0, NAME_MAX_CHARACTERS]; - _unit setVariable [QGVAR(cachedName), _returnName]; + if (_returnName != "AI: ") then { + _unit setVariable [QGVAR(cachedName), _returnName]; + }; }; }; From b454871fef18c3daa61936d216094e85526b8e8c Mon Sep 17 00:00:00 2001 From: lambdatiger Date: Wed, 13 Nov 2024 16:35:07 -0600 Subject: [PATCH 3/8] Briefing - Make ORBAT Updatable and Trigger a Update on Safe Start Ending (#595) * made orbat updatable * made orbat update on end of safe start * moved to replacing text * updated comments * removed part of an earlier method that was no longer used * Removing issues with units in vehicles, unsure of reason it was set --- addons/briefing/XEH_postInit.sqf | 5 ++++- addons/briefing/functions/fnc_addOrbat.sqf | 26 +++++++++++++++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/addons/briefing/XEH_postInit.sqf b/addons/briefing/XEH_postInit.sqf index bcefc86e3..2ecb0757b 100644 --- a/addons/briefing/XEH_postInit.sqf +++ b/addons/briefing/XEH_postInit.sqf @@ -10,6 +10,9 @@ if (hasInterface) then { if (isNull _unit || {!local _unit}) exitWith {}; [_unit] call FUNC(addIntentToZeus); }] call CBA_fnc_addEventHandler; + ["potato_safeStartOff", { + [player, 0] call FUNC(addOrbat); + }] call CBA_fnc_addEventHandler; }; ["CBA_settingsInitialized", { INFO_2("Briefing Settings: Credits: [%1] Orbat: [%2]",GVAR(brief_addCredits),GVAR(brief_addOrbat)); // Remove Me if no problems found @@ -27,7 +30,7 @@ if (hasInterface) then { } forEach allGroups; }, []] call CBA_fnc_execNextFrame; }; - + ["unit", { TRACE_1("playerChanged eh",ace_player); [ diff --git a/addons/briefing/functions/fnc_addOrbat.sqf b/addons/briefing/functions/fnc_addOrbat.sqf index 05bb0dee0..cb5ec386f 100644 --- a/addons/briefing/functions/fnc_addOrbat.sqf +++ b/addons/briefing/functions/fnc_addOrbat.sqf @@ -1,6 +1,7 @@ /* * Author: PabstMirror - * Function used to add the order of battle to player's diary + * Function used to add the order of battle to player's diary, or update a + * previously added orbat. * * Arguments: * 0: Unit to add to the OrBat to @@ -16,9 +17,9 @@ TRACE_1("params",_this); _this spawn { - uiSleep 10; + params ["_unit", ["_delay", 10, [123]]]; + uiSleep _delay; - params ["_unit"]; TRACE_1("",_unit); private _diaryBuilder = []; @@ -37,7 +38,7 @@ _this spawn { _diaryBuilder pushBack format ["%2", _color, (groupId _x)]; { private _color = _colorSelectArray select (_unit == _x); - private _xIcon = getText (configFile >> "CfgVehicles" >> typeOf (vehicle _x) >> "icon"); + private _xIcon = getText (configFile >> "CfgVehicles" >> typeOf _x >> "icon"); private _image = getText (configFile >> "CfgVehicleIcons" >> _xIcon); _diaryBuilder pushBack format ["%3", _image, _color, (name _x)]; } forEach (units _x); @@ -45,5 +46,20 @@ _this spawn { }; } forEach allGroups; - _unit createDiaryRecord ["diary", ["ORBAT", _diaryBuilder joinString "
"]]; + private _diaryEntries = _unit allDiaryRecords "diary"; + // find and replace existing orbat pages + private _newDiaryEntryText = _diaryBuilder joinString "
"; + private _noOrbatFound = true; + { + _x params ["_idx", "_title", "", "", "", "", "", "", "_record"]; + if (_title == "ORBAT") then { + _unit setDiaryRecordText [["diary", _record], ["ORBAT", _newDiaryEntryText]]; + _noOrbatFound = false; + }; + } forEach _diaryEntries; + + // if we didn't find and replace, add one + if (_noOrbatFound) then { + _unit createDiaryRecord ["diary", ["ORBAT", _newDiaryEntryText]]; + }; }; From efb4bff03b8f3b679935064b3a60305a72d3d3e4 Mon Sep 17 00:00:00 2001 From: AChesheireCat <66699749+AChesheireCat@users.noreply.github.com> Date: Wed, 13 Nov 2024 17:36:46 -0500 Subject: [PATCH 4/8] Adds JSRS Compat for NH90 (#586) Per https://github.com/BourbonWarfare/POTATO/issues/581 Replaced the default NH90 sounds with the JSRS vanilla AW-101 Merlin sounds. --- addons/miscFixes/patchHAFMHelis/config.cpp | 396 ++++++++++++++++++++- 1 file changed, 395 insertions(+), 1 deletion(-) diff --git a/addons/miscFixes/patchHAFMHelis/config.cpp b/addons/miscFixes/patchHAFMHelis/config.cpp index 4e08d23d2..fe259e7a2 100644 --- a/addons/miscFixes/patchHAFMHelis/config.cpp +++ b/addons/miscFixes/patchHAFMHelis/config.cpp @@ -7,7 +7,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = { "potato_core", "HAFM_NH90_Config", "HAFM_NH90", "Kimi_UI", "HAFM_EC635_Config" }; + requiredAddons[] = { "potato_core", "HAFM_NH90_Config", "HAFM_NH90", "Kimi_UI", "HAFM_EC635_Config", "jsrs_soundmod_complete_edition", "jsrs_soundmod_complete_edition_soundfiles" }; skipWhenMissingDependencies = 1; author = "Bourbon Warfare"; authorUrl = "https://github.com/BourbonWarfare/POTATO"; @@ -186,6 +186,400 @@ class CfgVehicles { priority=-11; }; }; + soundgetin[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\open.ogg",1,1,50}; + soundgetout[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\close.ogg",1,1,50}; + soundengineonint[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\int_start.ogg",1,1}; + soundengineonext[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\ext_start.ogg",1,1,300}; + soundengineoffint[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\int_off.ogg",1,1}; + soundengineoffext[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\ext_off.ogg",1,1,300}; + sounddammage[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\helibasiccrash.ogg",0.75,1}; + soundlocked[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\opfor_lock_1.ogg",0.75,1}; + soundincommingmissile[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\opfor_lock_2.ogg",0.75,1}; + rotordamageint[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_rotor_int.ogg",0.75,1}; + rotordamageout[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_rotor_ext.ogg",2.0,1,300}; + rotordamage[] = {"rotordamageint","rotordamageout"}; + taildamageint[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_tail.ogg",0.75,1}; + taildamageout[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_tail.ogg",2.0,1,300}; + taildamage[] = {"taildamageint","taildamageout"}; + landingsoundint0[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\landing_skids_int1_open.ogg",0.75,1}; + landingsoundint1[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\landing_skids_int1_open.ogg",0.75,1}; + landingsoundint[] = {"landingsoundint0",0.5,"landingsoundint1",0.5}; + landingsoundout0[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\landing_skids_ext1.ogg",1,1,300}; + landingsoundout1[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\landing_skids_ext1.ogg",1,1,300}; + landingsoundout[] = {"landingsoundout0",0.5,"landingsoundout1",0.5}; + gearupext[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\gear_up_out.ogg",1.5,1,700}; + gearupint[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\gear_up_in.ogg",1.5,1}; + gearup[] = {"gearupint","gearupext"}; + geardownint[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\gear_down_in.ogg",1.5,1}; + geardownext[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\gear_down_out.ogg",1.5,1,700}; + geardown[] = {"geardownint","geardownext"}; + slingcargoattach0[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_1hooklock.ogg",1.35,1}; + slingcargoattach1[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_1hooklock.ogg",1,1,300}; + slingcargoattach[] = {"slingcargoattach0","slingcargoattach1"}; + slingcargodetach0[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_1hookunlock.ogg",1.5,1}; + slingcargodetach1[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_1hookunlock.ogg",1,1,300}; + slingcargodetach[] = {"slingcargodetach0","slingcargodetach1"}; + class sounds { + class engineext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\engine_close.ogg",1.5,1,300}; + frequency = "rotorspeed"; + volume = "campos *1.5* (rotorspeed factor [0.6, 1]) * (1 + rotorthrust)"; + }; + class rotorext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\rotor_close.ogg",1.6,1,300}; + frequency = "(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)"; + volume = "campos *1.5* (rotorspeed factor [0.6, 1]) * (1 + rotorthrust)"; + }; + class rotorswist { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\tail_rotor.ogg",1,1,200}; + frequency = 1; + volume = "campos * (rotorthrust factor [0.7, 0.9])"; + }; + class engineint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\int_main.ogg",1,1}; + frequency = "rotorspeed"; + volume = "1*(1-campos)*(0 max (rotorspeed-0.4))"; + }; + class rotorint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\int_rotor.ogg",1,1}; + frequency = "(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)"; + volume = "(1 - campos) * (rotorspeed factor [0.3, 0.7]) * (1 + rotorthrust) * 0.7"; + }; + class rotorbench { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\rotor\rotor_normal.ogg",0.5,1}; + frequency = "(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)"; + volume = "(playerpos factor [3.9, 4]) * (1 - campos) * (rotorspeed factor [0.3, 1]) * (1 + rotorthrust) * 0.4"; + cone[] = {1.6,3.14,1.6,0.95}; + }; + class enginebench { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\rotor\rotor_normal.ogg",0.5,1}; + frequency = "rotorspeed"; + volume = "(playerpos factor [3.9, 4]) * (1 - campos) * (0 max (rotorspeed-0.4))"; + }; + class transmissiondamageext_phase1 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",1,1,300}; + frequency = "0.66 + rotorspeed / 3"; + volume = "campos * (transmissiondamage factor [0.3, 0.35]) * (transmissiondamage factor [0.5, 0.45]) * (rotorspeed factor [0.2, 0.5])"; + }; + class transmissiondamageext_phase2 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",1,1,300}; + frequency = "0.66 + rotorspeed / 3"; + volume = "campos * (transmissiondamage factor [0.45, 0.5]) * (rotorspeed factor [0.2, 0.5])"; + }; + class transmissiondamageint_phase1 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",0.75,1}; + frequency = "0.66 + rotorspeed / 3"; + volume = "(1 - campos) * (transmissiondamage factor [0.3, 0.35]) * (transmissiondamage factor [0.5, 0.45]) * (rotorspeed factor [0.2, 0.5])"; + }; + class transmissiondamageint_phase2 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",0.75,1}; + frequency = "0.66 + rotorspeed / 3"; + volume = "(1 - campos) * (transmissiondamage factor [0.45, 0.5]) * (rotorspeed factor [0.2, 0.5])"; + }; + class rotornoiseext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\rotor\rotor_normal.ogg",0.5,1,200}; + frequency = 1; + volume = "(campos*(rotorspeed factor [0.6, 0.85]))"; + cone[] = {1.6,3.14,2,0.95}; + }; + class distance { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\engine_far.ogg",1,1,1000}; + frequency = "rotorspeed"; + volume = "2 * campos * (0 max (rotorspeed-0.4))"; + }; + class fardistance { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\rotor_far.ogg",1,1,4000}; + frequency = "rotorspeed"; + volume = "campos *3* (rotorspeed factor [0.6, 1]) * (1 + rotorthrust)"; + }; + class damagealarmint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\damagealarm.ogg",0.75,1}; + frequency = 1; + volume = "engineon * (1 - campos) * ( 1 - ((transmissiondamage factor [0.61, 0.60]) * (motordamage factor [0.61, 0.60]) * (rotordamage factor [0.51, 0.50]))) * (rotorspeed factor [0.0, 0.001])"; + }; + class damagealarmext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\damagealarm.ogg",1,1,100}; + frequency = 1; + volume = "engineon * campos * ( 1 - ((transmissiondamage factor [0.61, 0.60]) * (motordamage factor [0.61, 0.60]) * (rotordamage factor [0.51, 0.50]))) * (rotorspeed factor [0, 0.001])"; + }; + class rotorlowalarmint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\lowrotoralarmint.ogg",0.75,1}; + frequency = 1; + volume = "engineon * (1 - campos) * (rotorspeed factor [0.9, 0.8999]) * (rotorspeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; + }; + class rotorlowalarmext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\lowrotoralarmint.ogg",1,1,75}; + frequency = 1; + volume = "engineon * campos * (rotorspeed factor [0.9, 0.8999]) * (rotorspeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; + }; + class windbench { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\wind_close_in.ogg",0.5,1}; + frequency = 1; + volume = "4 * (playerpos factor [3.9, 4]) * (1 - campos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; + }; + class rainext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\rain1_ext.ogg",1,1,100}; + frequency = 1; + volume = "campos * (rain - rotorspeed/2) * 2"; + }; + class rainint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\rain1_int_open.ogg",0.5,1}; + frequency = 1; + volume = "(1-campos)*(rain - rotorspeed/2)*2"; + }; + class windint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\wind_close_in.ogg",0.5,1}; + frequency = 1; + volume = "(1-campos)*(speed factor[5, 50])*(speed factor[5, 50])"; + }; + class windlateralmovementint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\wind_close_in.ogg",0.5,1,50}; + frequency = 1; + volume = "(1-campos)*lateralmovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; + }; + class gstress { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\vehicle_stress2b.ogg",0.75,1}; + frequency = 1; + volume = "engineon * (1-campos) * ((gmeterz factor[1.5, 2.5]) + (gmeterz factor[0.5, -0.5]))"; + }; + class speedstress { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\vehicle_stress2b.ogg",0.75,1}; + frequency = 1; + volume = "(1-campos)*(speed factor[40,80])"; + }; + class scrubtreeext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubtree.ogg",1,1,500}; + frequency = 1; + volume = "campos * (scrubtree factor[0.02, 0.05])"; + }; + class scrublandext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrublandext.ogg",1,1,500}; + frequency = 1; + volume = "campos * (scrubland factor[0.02, 0.05])"; + }; + class scrubbuildingext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubbuilding.ogg",1,1,500}; + frequency = 1; + volume = "campos * (scrubbuilding factor[0.02, 0.05])"; + }; + class scrublandint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrublandint_open.ogg",0.75,1}; + frequency = 1; + volume = "2 * (1-campos) * (scrubland factor[0.02, 0.05])"; + }; + class scrubbuildingint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubbuilding.ogg",0.75,1}; + frequency = 1; + volume = "2 * (1 - campos) * (scrubbuilding factor[0.02, 0.05])"; + }; + class scrubtreeint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubtree.ogg",0.75,1}; + frequency = 1; + volume = "(1 - campos) * ((scrubtree) factor [0, 0.01])"; + }; + class slingloaddownext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_enginedownext.ogg",1,1,500}; + frequency = 1; + volume = "campos*(slingloadactive factor [0,-1])"; + }; + class slingloadupext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_engineupext.ogg",1,1,500}; + frequency = 1; + volume = "campos*(slingloadactive factor [0,1])"; + }; + class slingloaddownint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_enginedownint.ogg",0.75,1}; + frequency = 1; + volume = "(1-campos)*(slingloadactive factor [0,-1])"; + }; + class slingloadupint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_engineupint.ogg",0.75,1}; + frequency = 1; + volume = "(1-campos)*(slingloadactive factor [0,1])"; + }; + }; + class soundsext { + class soundevents{}; + class sounds { + class engineext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\engine_close.ogg",1.5,1,300}; + frequency = "rotorspeed"; + volume = "campos *1.5* (rotorspeed factor [0.6, 1]) * (1 + rotorthrust)"; + }; + class rotorext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\rotor_close.ogg",1.6,1,300}; + frequency = "(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)"; + volume = "campos *1.5* (rotorspeed factor [0.6, 1]) * (1 + rotorthrust)"; + }; + class rotorswist { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\tail_rotor.ogg",1,1,200}; + frequency = 1; + volume = "campos * (rotorthrust factor [0.7, 0.9])"; + }; + class engineint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\int_main.ogg",1,1}; + frequency = "rotorspeed"; + volume = "1*(1-campos)*(0 max (rotorspeed-0.4))"; + }; + class rotorint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\int_rotor.ogg",1,1}; + frequency = "(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)"; + volume = "(1 - campos) * (rotorspeed factor [0.3, 0.7]) * (1 + rotorthrust) * 0.7"; + }; + class rotorbench { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\rotor\rotor_normal.ogg",0.5,1}; + frequency = "(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)"; + volume = "(playerpos factor [3.9, 4]) * (1 - campos) * (rotorspeed factor [0.3, 1]) * (1 + rotorthrust) * 0.4"; + cone[] = {1.6,3.14,1.6,0.95}; + }; + class enginebench { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\rotor\rotor_normal.ogg",0.5,1}; + frequency = "rotorspeed"; + volume = "(playerpos factor [3.9, 4]) * (1 - campos) * (0 max (rotorspeed-0.4))"; + }; + class transmissiondamageext_phase1 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",1,1,300}; + frequency = "0.66 + rotorspeed / 3"; + volume = "campos * (transmissiondamage factor [0.3, 0.35]) * (transmissiondamage factor [0.5, 0.45]) * (rotorspeed factor [0.2, 0.5])"; + }; + class transmissiondamageext_phase2 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",1,1,300}; + frequency = "0.66 + rotorspeed / 3"; + volume = "campos * (transmissiondamage factor [0.45, 0.5]) * (rotorspeed factor [0.2, 0.5])"; + }; + class transmissiondamageint_phase1 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",0.75,1}; + frequency = "0.66 + rotorspeed / 3"; + volume = "(1 - campos) * (transmissiondamage factor [0.3, 0.35]) * (transmissiondamage factor [0.5, 0.45]) * (rotorspeed factor [0.2, 0.5])"; + }; + class transmissiondamageint_phase2 { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\heli_damage_transmission_int_1.ogg",0.75,1}; + frequency = "0.66 + rotorspeed / 3"; + volume = "(1 - campos) * (transmissiondamage factor [0.45, 0.5]) * (rotorspeed factor [0.2, 0.5])"; + }; + class rotornoiseext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\rotor\rotor_normal.ogg",0.5,1,200}; + frequency = 1; + volume = "(campos*(rotorspeed factor [0.6, 0.85]))"; + cone[] = {1.6,3.14,2,0.95}; + }; + class distance { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\engine_far.ogg",1,1,1000}; + frequency = "rotorspeed"; + volume = "2 * campos * (0 max (rotorspeed-0.4))"; + }; + class fardistance { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\ch49_mohawk\rotor_far.ogg",1,1,4000}; + frequency = "rotorspeed"; + volume = "campos *3* (rotorspeed factor [0.6, 1]) * (1 + rotorthrust)"; + }; + class damagealarmint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\damagealarm.ogg",0.75,1}; + frequency = 1; + volume = "engineon * (1 - campos) * ( 1 - ((transmissiondamage factor [0.61, 0.60]) * (motordamage factor [0.61, 0.60]) * (rotordamage factor [0.51, 0.50]))) * (rotorspeed factor [0.0, 0.001])"; + }; + class damagealarmext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\damagealarm.ogg",1,1,100}; + frequency = 1; + volume = "engineon * campos * ( 1 - ((transmissiondamage factor [0.61, 0.60]) * (motordamage factor [0.61, 0.60]) * (rotordamage factor [0.51, 0.50]))) * (rotorspeed factor [0, 0.001])"; + }; + class rotorlowalarmint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\lowrotoralarmint.ogg",0.75,1}; + frequency = 1; + volume = "engineon * (1 - campos) * (rotorspeed factor [0.9, 0.8999]) * (rotorspeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; + }; + class rotorlowalarmext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\lowrotoralarmint.ogg",1,1,75}; + frequency = 1; + volume = "engineon * campos * (rotorspeed factor [0.9, 0.8999]) * (rotorspeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; + }; + class windbench { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\wind_close_in.ogg",0.5,1}; + frequency = 1; + volume = "4 * (playerpos factor [3.9, 4]) * (1 - campos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; + }; + class rainext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\rain1_ext.ogg",1,1,100}; + frequency = 1; + volume = "campos * (rain - rotorspeed/2) * 2"; + }; + class rainint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\rain1_int_open.ogg",0.5,1}; + frequency = 1; + volume = "(1-campos)*(rain - rotorspeed/2)*2"; + }; + class windint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\wind_close_in.ogg",0.5,1}; + frequency = 1; + volume = "(1-campos)*(speed factor[5, 50])*(speed factor[5, 50])"; + }; + class windlateralmovementint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\wind_close_in.ogg",0.5,1,50}; + frequency = 1; + volume = "(1-campos)*lateralmovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; + }; + class gstress { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\vehicle_stress2b.ogg",0.75,1}; + frequency = 1; + volume = "engineon * (1-campos) * ((gmeterz factor[1.5, 2.5]) + (gmeterz factor[0.5, -0.5]))"; + }; + class speedstress { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\vehicle_stress2b.ogg",0.75,1}; + frequency = 1; + volume = "(1-campos)*(speed factor[40,80])"; + }; + class scrubtreeext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubtree.ogg",1,1,500}; + frequency = 1; + volume = "campos * (scrubtree factor[0.02, 0.05])"; + }; + class scrublandext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrublandext.ogg",1,1,500}; + frequency = 1; + volume = "campos * (scrubland factor[0.02, 0.05])"; + }; + class scrubbuildingext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubbuilding.ogg",1,1,500}; + frequency = 1; + volume = "campos * (scrubbuilding factor[0.02, 0.05])"; + }; + class scrublandint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrublandint_open.ogg",0.75,1}; + frequency = 1; + volume = "2 * (1-campos) * (scrubland factor[0.02, 0.05])"; + }; + class scrubbuildingint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubbuilding.ogg",0.75,1}; + frequency = 1; + volume = "2 * (1 - campos) * (scrubbuilding factor[0.02, 0.05])"; + }; + class scrubtreeint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\scrubtree.ogg",0.75,1}; + frequency = 1; + volume = "(1 - campos) * ((scrubtree) factor [0, 0.01])"; + }; + class slingloaddownext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_enginedownext.ogg",1,1,500}; + frequency = 1; + volume = "campos*(slingloadactive factor [0,-1])"; + }; + class slingloadupext { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_engineupext.ogg",1,1,500}; + frequency = 1; + volume = "campos*(slingloadactive factor [0,1])"; + }; + class slingloaddownint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_enginedownint.ogg",0.75,1}; + frequency = 1; + volume = "(1-campos)*(slingloadactive factor [0,-1])"; + }; + class slingloadupint { + sound[] = {"\jsrs_soundmod_complete\JSRS_Soundmod_Soundfiles\air_vehicles\shared\sl_engineupint.ogg",0.75,1}; + frequency = 1; + volume = "(1-campos)*(slingloadactive factor [0,1])"; + }; + }; + }; }; class NH90Armed_AAF: NH90 { transportSoldier = 8; // fixes issue where there are more available seats than physically present on model From ad546b073f95b70334f677589a32f8286867196e Mon Sep 17 00:00:00 2001 From: lambdatiger Date: Wed, 13 Nov 2024 16:37:47 -0600 Subject: [PATCH 5/8] massCompat - Add custom HV 40x53mm HE and HEDP grenades (#585) * Adding HV 40mm HEDP round and updating drag on * added hdep to massCompat * added magazineWells to vehicle weapons and checking via attributeLoad * Fixed missing space between colon and inheriting classname * Update time to live and airfriction to better match max distance * removed local function and used compatibleMagazines instead --- addons/massCompat/CfgAmmo.hpp | 52 ++++++++++++++++++- addons/massCompat/CfgMagazineWells.hpp | 8 +++ addons/massCompat/CfgMagazines.hpp | 23 ++++++++ addons/massCompat/CfgWeapons.hpp | 6 ++- addons/massCompat/script_component.hpp | 4 ++ addons/miscFixes/patchCUP/config.cpp | 7 +++ .../functions/fnc_attributeLoad.sqf | 2 +- 7 files changed, 99 insertions(+), 3 deletions(-) diff --git a/addons/massCompat/CfgAmmo.hpp b/addons/massCompat/CfgAmmo.hpp index 56ea6e455..93287cdd3 100644 --- a/addons/massCompat/CfgAmmo.hpp +++ b/addons/massCompat/CfgAmmo.hpp @@ -36,4 +36,54 @@ class CfgAmmo { CREATE_LARGE_AMMO(50_bmg); CREATE_LARGE_AMMO(127x108); CREATE_LARGE_AMMO(127x108_slap); -}; + + // Updating 40x53mm HV grenades (Mk19) + class G_40mm_HE; + class AMMO(40x53mm_HE_M384): G_40mm_HE { + airFriction = -0.00045; + aiAmmoUsageFlags = "64 + 128"; + displayNameshort = "M384 HE"; + displayName = "M384 40x53mm HE"; + ACEGVAR(frag,charge) = 54.5; + ACEGVAR(frag,metal) = 205; + ACEGVAR(frag,gurney_c) = 2769; // comp A-5 + ACEGVAR(frag,fragCount) = 1050; // based on Rheinmetal comparison of new AB round + ACEGVAR(frag,classes)[] = {QACEGVAR(frag,tiny_HD), QACEGVAR(frag,small_HD), QACEGVAR(frag,small_HD)}; + maxSpeed = 250; + typicalSpeed = 240; + timeToLive = 25; + }; + + class G_40mm_HEDP; + class AMMO(40x53mm_HEDP_M430A1): G_40mm_HEDP { // based on NDC M430A1 HEDP + airFriction = -0.00045; + aiAmmoUsageFlags = "64 + 128 + 512"; + cost = 12; + displayNameshort = "M430A1 HEDP"; + displayName = "M430A1 40x53mm HEDP"; + ACEGVAR(frag,gurney_c) = 2769; // comp A-5 + ACEGVAR(frag,fragCount) = 750; // based on Rheinmetal comparison of new AB round + ACEGVAR(frag,classes)[] = {QACEGVAR(frag,tiny_HD), QACEGVAR(frag,tiny_HD), QACEGVAR(frag,small_HD)}; + // Damage + hit = 80; // reduce to match HEDP + maxSpeed = 250; + typicalSpeed = 241; + timeToLive = 25; + // Penetrator + deleteParentWhenTriggered = 0; + submunitionAmmo = QAMMO(40x53mm_HEDP_M430A1_penetrator); + submunitionDirectionType = "SubmunitionModelDirection"; + submunitionInitialOffset[] = {0, 0, -0.2}; + submunitionInitSpeed = 1000; + submunitionParentSpeedCoef = 0; + triggerOnImpact = 1; + }; + class ammo_Penetrator_Base; + class AMMO(40x53mm_HEDP_M430A1_penetrator): ammo_Penetrator_Base { + hit = 80; // a guess + caliber = 5.067; // 76mm steel + submunitionAmmo = ""; // override RHS spalling + submunitionConeType[] = {}; + timeToLive = 0.1; + }; +}; \ No newline at end of file diff --git a/addons/massCompat/CfgMagazineWells.hpp b/addons/massCompat/CfgMagazineWells.hpp index 0fc8ec1af..094289ff4 100644 --- a/addons/massCompat/CfgMagazineWells.hpp +++ b/addons/massCompat/CfgMagazineWells.hpp @@ -182,4 +182,12 @@ class CfgMagazineWells { MAGAZINE_WELL_MAG(65x39,20) }; }; + class MAGWELL(HV_40x53mm) { + MAGWELL(magzineWell)[] = { + QMAGAZINE_CLASS(96Rnd_40mm_MK19_M430A1_HEDP), + QMAGAZINE_CLASS(48Rnd_40mm_MK19_M430A1_HEDP), + QMAGAZINE_CLASS(96Rnd_40mm_MK19_M384_HE), + QMAGAZINE_CLASS(48Rnd_40mm_MK19_M384_HE) + }; + }; }; diff --git a/addons/massCompat/CfgMagazines.hpp b/addons/massCompat/CfgMagazines.hpp index e31e31f5e..1c6a87d47 100644 --- a/addons/massCompat/CfgMagazines.hpp +++ b/addons/massCompat/CfgMagazines.hpp @@ -367,4 +367,27 @@ class CfgMagazines { class 100Rnd_762x54_Box_Tracer_Red: potato_box_762x54_100rnd_tracer_Red { scope = 1; }; class 100Rnd_762x54_Box_Tracer_Yellow: potato_box_762x54_100rnd_tracer_Yellow { scope = 1; }; + + // HV 40x53mm grenade launcher + class 200Rnd_40mm_G_belt; + class MAGAZINE_CLASS(96Rnd_40mm_MK19_M430A1_HEDP): 200Rnd_40mm_G_belt { + ammo = QAMMO(40x53mm_HEDP_M430A1); + count = 96; + displayNameshort = "40x53mm HEDP"; + displayName = "M430A1 40x53mm HEDP"; + initSpeed = 241; + }; + class MAGAZINE_CLASS(48Rnd_40mm_MK19_M430A1_HEDP): MAGAZINE_CLASS(96Rnd_40mm_MK19_M430A1_HEDP) { + count = 48; + }; + class MAGAZINE_CLASS(96Rnd_40mm_MK19_M384_HE): 200Rnd_40mm_G_belt { + ammo = QAMMO(40x53mm_HE_M384); + count = 96; + displayNameshort = "40x53mm HE"; + displayName = "M384 40x53mm HE"; + initSpeed = 241; + }; + class MAGAZINE_CLASS(48Rnd_40mm_MK19_M384_HE): MAGAZINE_CLASS(96Rnd_40mm_MK19_M384_HE) { + count = 48; + }; }; diff --git a/addons/massCompat/CfgWeapons.hpp b/addons/massCompat/CfgWeapons.hpp index c1080bd54..8396adb63 100644 --- a/addons/massCompat/CfgWeapons.hpp +++ b/addons/massCompat/CfgWeapons.hpp @@ -268,7 +268,7 @@ class CfgWeapons { }; // Magazine Wells - + class arifle_MSBS65_base_F: Rifle_Base_F { magazineWell[] += { "CBA_65x39_MX" }; }; @@ -419,4 +419,8 @@ class CfgWeapons { initSpeed = -1.0; }; + class GMG_F; + class GMG_40mm: GMG_F { + magazineWell[] += {QMAGWELL(HV_40x53mm)}; + }; }; diff --git a/addons/massCompat/script_component.hpp b/addons/massCompat/script_component.hpp index 2a2a59e46..d5127d3da 100644 --- a/addons/massCompat/script_component.hpp +++ b/addons/massCompat/script_component.hpp @@ -23,6 +23,10 @@ #define QAMMO_CLASS(type) QUOTE(AMMO_CLASS(type)) #define MAGAZINE_CLASS(type) SCORE_2(potato,type) #define QMAGAZINE_CLASS(type) QUOTE(MAGAZINE_CLASS(type)) +#define AMMO(var1) DOUBLES(PREFIX,var1) +#define QAMMO(var1) QUOTE(AMMO(var1)) +#define MAGWELL(var1) DOUBLES(PREFIX,var1) +#define QMAGWELL(var1) QUOTE(MAGWELL(var1)) #define RELOAD_TRACER_REMAINING 4 #define MG_TRACER_EVERY 4 diff --git a/addons/miscFixes/patchCUP/config.cpp b/addons/miscFixes/patchCUP/config.cpp index 8e96bdc09..526df6358 100644 --- a/addons/miscFixes/patchCUP/config.cpp +++ b/addons/miscFixes/patchCUP/config.cpp @@ -74,6 +74,7 @@ class CfgRecoils { }; }; + class CfgWeapons { class CUP_arifle_RPK74; class potato_arifle_RPK: CUP_arifle_RPK74 { @@ -138,6 +139,12 @@ class CfgWeapons { class CUP_lmg_UK59: Rifle_Long_Base_F { // Tones down the horrific standing recoil to a more manageable state. Still stucks, but less now recoil = QGVAR(recoil_uk59); }; + + // 40mm HEDP + class CUP_Vhmg_AGS30_veh; + class CUP_Vgmg_MK19_veh: CUP_Vhmg_AGS30_veh { + magazineWell[] += {"potato_HV_40x53mm"}; + }; }; class SlotInfo; diff --git a/addons/setVehicleAmmo/functions/fnc_attributeLoad.sqf b/addons/setVehicleAmmo/functions/fnc_attributeLoad.sqf index 01cb92010..7b128b45a 100644 --- a/addons/setVehicleAmmo/functions/fnc_attributeLoad.sqf +++ b/addons/setVehicleAmmo/functions/fnc_attributeLoad.sqf @@ -175,7 +175,7 @@ private _addWeaponSystem = { { private _weapon = _x; private _muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles"); - private _weaponMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines"); + private _weaponMagazines = compatibleMagazines _weapon; ((GVAR(turretMagsArray) select _index) select 1) pushBack _weaponMagazines; From 89633dfb8b26be8ef62d1b13336a1d9a1869698a Mon Sep 17 00:00:00 2001 From: lambdatiger Date: Wed, 13 Nov 2024 16:39:39 -0600 Subject: [PATCH 6/8] Miscelaneous Fixes and Edits Based on Feedback from the 1.3.47 Potato Update (#584) * added aceEdits readme * fixed testing checklist SS prompt * skip aceEdits when missing ace * Updated overpressure EH to match ace frag eventhandler * Lower JIP entries for AMA public functions * Made comments clearer for future safe start code changes --- addons/aceEdits/README.md | 5 +++++ addons/aceEdits/config.cpp | 1 + addons/armor_modifier_ace/functions/fnc_setClassArmor.sqf | 2 +- addons/armor_modifier_ace/functions/fnc_setUnitArmor.sqf | 2 +- addons/miscMedical/XEH_postInit.sqf | 5 +---- addons/missionTesting/XEH_postInit.sqf | 2 +- addons/safeStart/functions/fnc_initForceEndSafeStart.sqf | 3 ++- 7 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 addons/aceEdits/README.md diff --git a/addons/aceEdits/README.md b/addons/aceEdits/README.md new file mode 100644 index 000000000..ca2d0c44e --- /dev/null +++ b/addons/aceEdits/README.md @@ -0,0 +1,5 @@ +# ACE Edits (aceEdits) + +A mod that adds changes to ACE that could be a part of ACE, but aren't. Including small feature additions, function overwrites, and other changes. +## Current Items +- Interact to pick up weapons when they are close enough to a body, for when weapon holders get placed in unreachable areas. \ No newline at end of file diff --git a/addons/aceEdits/config.cpp b/addons/aceEdits/config.cpp index 29c7333b4..c56796050 100644 --- a/addons/aceEdits/config.cpp +++ b/addons/aceEdits/config.cpp @@ -6,6 +6,7 @@ class CfgPatches { weapons[] = {}; requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_interaction"}; + skipWhenMissingDependencies = 1; author = "Potato"; authors[] = {"Lambda.Tiger"}; authorUrl = "https://github.com/BourbonWarfare/POTATO"; diff --git a/addons/armor_modifier_ace/functions/fnc_setClassArmor.sqf b/addons/armor_modifier_ace/functions/fnc_setClassArmor.sqf index 5d60c3121..8be53610d 100644 --- a/addons/armor_modifier_ace/functions/fnc_setClassArmor.sqf +++ b/addons/armor_modifier_ace/functions/fnc_setClassArmor.sqf @@ -36,4 +36,4 @@ if (false in (_armorArray apply {_x isEqualType 0})) exitWith { }; _this set [1, _hitPoint]; -[QGVAR(updateClassArmor), _this] call CBA_fnc_globalEventJIP; +[QGVAR(updateClassArmor), _this, "AMA_JIPID_" + _classname + _hitPoint] call CBA_fnc_globalEventJIP; diff --git a/addons/armor_modifier_ace/functions/fnc_setUnitArmor.sqf b/addons/armor_modifier_ace/functions/fnc_setUnitArmor.sqf index 4fd160f65..dfbfcf10a 100644 --- a/addons/armor_modifier_ace/functions/fnc_setUnitArmor.sqf +++ b/addons/armor_modifier_ace/functions/fnc_setUnitArmor.sqf @@ -37,4 +37,4 @@ if (false in (_armorArray apply {_x isEqualType 0})) exitWith { _this set [1, _hitPoint]; private _jipID = [QGVAR(updateUnitArmor), _this] call CBA_fnc_globalEventJIP; -[_jipID, _unit] call CBA_fnc_removeGlobalEventJIP; +[_jipID, _unit, "AMA_JIPID_" + (getObjectID _unit) + _hitPoint] call CBA_fnc_removeGlobalEventJIP; diff --git a/addons/miscMedical/XEH_postInit.sqf b/addons/miscMedical/XEH_postInit.sqf index 6eb834ec4..279960d26 100644 --- a/addons/miscMedical/XEH_postInit.sqf +++ b/addons/miscMedical/XEH_postInit.sqf @@ -395,10 +395,7 @@ DFUNC(generateVisuals) = { if (isServer) then { // add explosion event handler [QACEGVAR(frag,frag_eh), { - params ["_lastPos", "", "_explosive"]; - if (_explosive isEqualType []) then { - _explosive = _this # 1; // frag rewrite uses [_posASL, _ammo, [objNull, _instigator]] - }; + params ["_lastPos", "_explosive"]; private _explosiveConfig = configFile >> "CfgAmmo" >> _explosive; // ACE_frag defines mass as grams, we do as kilograms diff --git a/addons/missionTesting/XEH_postInit.sqf b/addons/missionTesting/XEH_postInit.sqf index 42c36cd70..7eb648526 100644 --- a/addons/missionTesting/XEH_postInit.sqf +++ b/addons/missionTesting/XEH_postInit.sqf @@ -13,7 +13,7 @@ GVAR(MissionTestingChecklistMaster) = [ ,["Take a quick look at the map for terrain imbalances, and make sure the mission maker has taken them into account (I.E. defenders need better gear and/or more people if they're defending a bowl that has sparse cover)",D_CHECK,MISSION_TYPE_APPLIES_TVT] ,["Ensure there is a signals tab, and the channel names make sense for the mission",D_CHECK,MISSION_TYPE_APPLIES_BOTH] ,["Ensure that if it is a night mission it is tagged as such in the mission description on the slotting screen",D_CHECK,MISSION_TYPE_APPLIES_BOTH] - ,["Ensure that if it Safe Start ends automatically, it is clear from the slotting screen or a plan to inform commander(s) before mission start",D_CHECK,MISSION_TYPE_APPLIES_BOTH] + ,["Ensure that if Safe Start ends automatically, it is clear from the slotting screen or a plan exists to inform leadership before mission start",D_CHECK,MISSION_TYPE_APPLIES_BOTH] ],D_PASSFAIL,"",D_NOTEFLAG ] ,["GEAR CHECKLIST", diff --git a/addons/safeStart/functions/fnc_initForceEndSafeStart.sqf b/addons/safeStart/functions/fnc_initForceEndSafeStart.sqf index 68789bf45..26ce3b23c 100644 --- a/addons/safeStart/functions/fnc_initForceEndSafeStart.sqf +++ b/addons/safeStart/functions/fnc_initForceEndSafeStart.sqf @@ -21,7 +21,8 @@ params [["_minTime", 0.001, [0]]]; // We don't need to run this function if we're not on the server, -// or it's not enabled, or +// or safe star is not enabled for the mission, or safe start is not on, +// or if the mission hasn't been configured to force safe start to end if (!(isServer && GVAR(enabled) && GVAR(safeStartEnabled)) || {!(getMissionConfigValue [QEGVAR(missionTesting,SSForceEnd), false])}) exitWith { TRACE_2("Did not initialize force end safe start",isServer,GVAR(enabled)); From 4818999436c81fd99c46d7406b16e413c63aafe2 Mon Sep 17 00:00:00 2001 From: lambdatiger Date: Wed, 13 Nov 2024 16:39:54 -0600 Subject: [PATCH 7/8] Add m1038 fix to patchCUP (#580) --- addons/miscFixes/patchCUP/config.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/addons/miscFixes/patchCUP/config.cpp b/addons/miscFixes/patchCUP/config.cpp index 526df6358..14859cdfd 100644 --- a/addons/miscFixes/patchCUP/config.cpp +++ b/addons/miscFixes/patchCUP/config.cpp @@ -44,6 +44,24 @@ class CfgVehicles { }; class UserActions {}; // clear all user actions (not a big deal) }; + // Fix the M1038 back seat + class Car; + class Car_F: Car { + class Turrets; + }; + class CUP_nHMMWV_Base: Car_F { + class CargoTurret; + class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + }; + }; + class CUP_nM1038_Base: CUP_nHMMWV_Base { + class Turrets: Turrets { + class CargoTurret_01: CargoTurret_01 { + gunnerAction = "CUP_HMMWV_bench_gunner_1"; + }; + }; + }; }; class CfgRecoils { From 58f70c87c5fcfeebf12a2ce1d5d3df0a737e4285 Mon Sep 17 00:00:00 2001 From: AChesheireCat <66699749+AChesheireCat@users.noreply.github.com> Date: Wed, 13 Nov 2024 17:40:54 -0500 Subject: [PATCH 8/8] customGear and fauxWeapons rebasing (#594) * Adds backpack versions of CUP vests Adds backpack versions of the following vests: - BAF Osprey Mk4 belt - BAF Osprey Mk4 webbing - RU Smersh (Olive) - RU Smersh (Coyote) * Moves custom gear to it's own subaddon * Rebases the faux weapons from miscFixes Moves the faux weapons (C7, MG5) from the miscFixes folder to the new customGear folder. * Rebasing faux weapons 2.0 * due diligence check aka me being dumb fixed line in script_component that referenced MISCFIXES instead of CUSTOMGEAR * Fixed classnames and rebased faux weapons - Moved faux weapons from its own sub-component to just a cfgWeapons - fixed classnames to prevent breaking missions * Create $PBOPREFIX$ * Adds weapons to config.cpp * Updated baseWeapon From QGVAR(MG5) to "potato_fauxMG5_MG5", per the classname --------- Co-authored-by: PabstMirror --- addons/customGear/$PBOPREFIX$ | 1 + .../fauxC7 => customGear}/CfgWeapons.hpp | 29 ++- addons/customGear/README.md | 9 + addons/customGear/config.hpp | 17 ++ .../script_component.hpp | 4 +- addons/customGear/vestBackpacks/config.cpp | 197 ++++++++++++++++++ addons/miscFixes/fauxC7/config.cpp | 22 -- addons/miscFixes/fauxC7/script_component.hpp | 12 -- addons/miscFixes/fauxMG5/CfgWeapons.hpp | 17 -- addons/miscFixes/fauxMG5/config.cpp | 19 -- 10 files changed, 249 insertions(+), 78 deletions(-) create mode 100644 addons/customGear/$PBOPREFIX$ rename addons/{miscFixes/fauxC7 => customGear}/CfgWeapons.hpp (76%) create mode 100644 addons/customGear/README.md create mode 100644 addons/customGear/config.hpp rename addons/{miscFixes/fauxMG5 => customGear}/script_component.hpp (79%) create mode 100644 addons/customGear/vestBackpacks/config.cpp delete mode 100644 addons/miscFixes/fauxC7/config.cpp delete mode 100644 addons/miscFixes/fauxC7/script_component.hpp delete mode 100644 addons/miscFixes/fauxMG5/CfgWeapons.hpp delete mode 100644 addons/miscFixes/fauxMG5/config.cpp diff --git a/addons/customGear/$PBOPREFIX$ b/addons/customGear/$PBOPREFIX$ new file mode 100644 index 000000000..46a55dd6a --- /dev/null +++ b/addons/customGear/$PBOPREFIX$ @@ -0,0 +1 @@ +z\potato\addons\customGear diff --git a/addons/miscFixes/fauxC7/CfgWeapons.hpp b/addons/customGear/CfgWeapons.hpp similarity index 76% rename from addons/miscFixes/fauxC7/CfgWeapons.hpp rename to addons/customGear/CfgWeapons.hpp index 2d15d1520..4434aad87 100644 --- a/addons/miscFixes/fauxC7/CfgWeapons.hpp +++ b/addons/customGear/CfgWeapons.hpp @@ -1,8 +1,8 @@ class Mode_FullAuto; - class CfgWeapons { + // Adds C7, C7GL, and C7A2, C7A2 class CUP_arifle_M16A1E1; - class GVAR(c7): CUP_arifle_M16A1E1 { + class potato_fauxC7_c7: CUP_arifle_M16A1E1 { author = "Potato"; displayName = "C7"; modes[] = {"Single","FullAuto","Burst_medium","single_medium_optics1","single_medium_optics2"}; @@ -27,12 +27,12 @@ class CfgWeapons { }; }; class CUP_arifle_M16A1GL; - class GVAR(c7GL): CUP_arifle_M16A1GL { + class potato_fauxC7_c7GL: CUP_arifle_M16A1GL { author = "Potato"; displayName = "C7 M203"; }; class CUP_arifle_M16A4_Base; - class GVAR(c7a2): CUP_arifle_M16A4_Base { + class potato_fauxC7_c7a2: CUP_arifle_M16A4_Base { author = "Potato"; displayName = "C7A2"; modes[] = {"Single","FullAuto","Burst_medium","single_medium_optics1","single_medium_optics2"}; @@ -57,7 +57,7 @@ class CfgWeapons { }; }; class CUP_arifle_M16A4_GL; - class GVAR(c7a2GL): CUP_arifle_M16A4_GL { + class potato_fauxC7_c7a2GL: CUP_arifle_M16A4_GL { author = "Potato"; displayName = "C7A2 M203"; modes[] = {"Single","FullAuto","Burst_medium","single_medium_optics1","single_medium_optics2"}; @@ -81,4 +81,21 @@ class CfgWeapons { maxRangeProbab = 0.05; }; }; -}; \ No newline at end of file + + // Adds MG5 in 7.62x51mm + class MMG_01_tan_F; + class potato_fauxMG5_MG5: MMG_01_tan_F { + author = "Potato"; + displayName = "H&K MG5"; + descriptionShort = "General Purpose Machine Gun
Caliber: 7.62x51 mm"; + baseWeapon = "potato_fauxMG5_MG5"; + recoil = "CUP_MG3_recoil"; + magazineWell[] = {"CBA_762x51_LINKS"}; + magazines[] = { + "CUP_120Rnd_TE4_LRT4_Red_Tracer_762x51_Belt_M", + "CUP_120Rnd_TE4_LRT4_White_Tracer_762x51_Belt_M", + "CUP_120Rnd_TE4_LRT4_Green_Tracer_762x51_Belt_M", + "CUP_120Rnd_TE4_LRT4_Yellow_Tracer_762x51_Belt_M" + }; + }; +}; diff --git a/addons/customGear/README.md b/addons/customGear/README.md new file mode 100644 index 000000000..de8ecb321 --- /dev/null +++ b/addons/customGear/README.md @@ -0,0 +1,9 @@ +# Custom Gear (customGear) + +A mod that serves as a place to put custom gear retextures, new gear items, and gear conversions (ie. vests converted to backpacks). + +## Current Items + +- Converts some CUP vests (BAF Mk4 belt/webbing, RUAF Smersh in Olive and Coyote) to backpacks + +- Adds re-config'd weapons (C7s + variants, MG5, soon-to-be KAC LAMG) \ No newline at end of file diff --git a/addons/customGear/config.hpp b/addons/customGear/config.hpp new file mode 100644 index 000000000..f43955017 --- /dev/null +++ b/addons/customGear/config.hpp @@ -0,0 +1,17 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = { "potato_fauxC7_c7", "potato_fauxC7_c7GL", "potato_fauxC7_c7a2", "potato_fauxC7_c7a2GL", "potato_fauxMG5_MG5" }; + magazines[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "potato_core" }; + author = "Potato"; + authors[] = {"PabstMirror", "AACO"}; + authorUrl = "https://github.com/BourbonWarfare/POTATO"; + VERSION_CONFIG; + }; +}; + +#include "CfgVehicles.hpp" \ No newline at end of file diff --git a/addons/miscFixes/fauxMG5/script_component.hpp b/addons/customGear/script_component.hpp similarity index 79% rename from addons/miscFixes/fauxMG5/script_component.hpp rename to addons/customGear/script_component.hpp index e35c56924..deddb9580 100644 --- a/addons/miscFixes/fauxMG5/script_component.hpp +++ b/addons/customGear/script_component.hpp @@ -1,11 +1,11 @@ -#define COMPONENT fauxMG5 +#define COMPONENT customGear #include "\z\potato\addons\core\script_mod.hpp" // #define DEBUG_MODE_FULL // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS -#ifdef DEBUG_ENABLED_FAUXMG5 +#ifdef DEBUG_ENABLED_CUSTOMGEAR #define DEBUG_MODE_FULL #endif diff --git a/addons/customGear/vestBackpacks/config.cpp b/addons/customGear/vestBackpacks/config.cpp new file mode 100644 index 000000000..9da971140 --- /dev/null +++ b/addons/customGear/vestBackpacks/config.cpp @@ -0,0 +1,197 @@ +#include "\z\potato\addons\customGear\script_component.hpp" +#undef COMPONENT +#define COMPONENT customGear_vestBackpacks + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "potato_core", "CUP_Weapons_LoadOrder", "CUP_Creatures_People_LoadOrder" }; + skipWhenMissingDependencies = 1; + author = "Bourbon Warfare"; + authorUrl = "https://github.com/BourbonWarfare/POTATO"; + VERSION_CONFIG; + }; +}; + +class CfgVehicles { + // Adds copies of the BAF Osprey Mk4 belt and webbing, and the Russian Smersh (Olive/Coyote) as backpacks + class Bag_Base; + class potato_Osprey_Mk4_Belt: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "Osprey Mk4 Battle Belt"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\webbing\data\UI\osprey_mk4_belt_ca.paa"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\webbing\osprey_mk4_belt.p3d"; + hiddenSelections[] = {"camo1","camo2"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\osprey_mk4\data\equip_co.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\osprey_mk4\data\gear_co.paa"}; + maximumLoad = 160; + mass = 25; + }; + class potato_Osprey_Mk4_Webbing: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "Osprey Mk4 Webbing"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\webbing\data\UI\osprey_mk4_webbing_ca.paa"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\webbing\osprey_mk4_webbing.p3d"; + hiddenSelections[] = {"camo","camo1","camo2"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\webbing\data\US_PASGT_vest_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\osprey_mk4\data\equip_co.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_BAF\CUP_vests\osprey_mk4\data\gear_co.paa"}; + maximumLoad = 160; + mass = 25; + }; + class potato_RPS_Smersh_AK_ModernOlive: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Olive/AK)"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_AK_Coyote_ca.paa"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_ak.p3d"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\AK_m_CO.paa"}; + maximumLoad = 160; + mass = 25; + }; + class potato_RPS_Smersh_VOG_ModernOlive: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Olive/VOG)"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_VOG_Coyote_ca.paa"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_vog.p3d"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\AK_m_CO.paa"}; + maximumLoad = 160; + mass = 27; + }; + class potato_RPS_Smersh_VOG_SPP_ModernOlive: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Olive/SPP/VOG)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_vog_spp.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_VOG_SPP_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\AK_m_CO.paa"}; + maximumLoad = 190; + mass = 30; + }; + class potato_RPS_Smersh_PKP_ModernOlive: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Olive/PKP)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_pkp.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_PKP_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\PKP_m_CO.paa"}; + maximumLoad = 160; + mass = 27; + }; + class potato_RPS_Smersh_PKP_Light_ModernOlive: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Olive/PKP Light)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_pkp_light.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_PKP_Light_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\PKP_m_CO.paa"}; + maximumLoad = 160; + mass = 25; + }; + class potato_RPS_Smersh_PKP_SPP_ModernOlive: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Olive/SPP/PKP)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_pkp_spp.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_PKP_SPP_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\PKP_m_CO.paa"}; + maximumLoad = 190; + mass = 30; + }; + class potato_RPS_Smersh_SVD_ModernOlive: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Olive/SVD)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_svd.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_SVD_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_m_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\SVD_m_CO.paa"}; + maximumLoad = 160; + mass = 21; + }; + class potato_RPS_Smersh_AK_Coyote: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Coyote/AK)"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_AK_Coyote_ca.paa"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_ak.p3d"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\AK_c_CO.paa"}; + maximumLoad = 160; + mass = 25; + }; + class potato_RPS_Smersh_VOG_Coyote: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Coyote/VOG)"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_VOG_Coyote_ca.paa"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_vog.p3d"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\AK_c_CO.paa"}; + maximumLoad = 160; + mass = 27; + }; + class potato_RPS_Smersh_VOG_SPP_Coyote: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Coyote/SPP/VOG)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_vog_spp.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_VOG_SPP_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\AK_c_CO.paa"}; + maximumLoad = 190; + mass = 30; + }; + class potato_RPS_Smersh_PKP_Coyote: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Coyote/PKP)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_pkp.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_PKP_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\PKP_c_CO.paa"}; + maximumLoad = 160; + mass = 27; + }; + class potato_RPS_Smersh_PKP_Light_Coyote: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Coyote/PKP Light)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_pkp_light.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_PKP_Light_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\PKP_c_CO.paa"}; + maximumLoad = 160; + mass = 25; + }; + class potato_RPS_Smersh_PKP_SPP_Coyote: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Coyote/SPP/PKP)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_pkp_spp.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_PKP_SPP_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\PKP_c_CO.paa"}; + maximumLoad = 190; + mass = 30; + }; + class potato_RPS_Smersh_SVD_Coyote: Bag_Base { + author = "AChesheireCat"; + scope = 2; + displayName = "RPS Smersh (Coyote/SVD)"; + model = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\CUP_rps_smersh_svd.p3d"; + picture = "\CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\data\UI\icon_V_O_RUS_RPS_Smersh_SVD_ModernOlive_ca.paa"; + hiddenSelections[] = {"Camo1","Camo2","Camo3","Camo4"}; + hiddenSelectionsTextures[] = {"CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\RPS_Straps_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\Suharka_MED_VOG_c_CO.paa","CUP\Creatures\People\Military\CUP_Creatures_People_Military_RussiaModern\Vest\RPS_Smersh\Data\SVD_c_CO.paa"}; + maximumLoad = 160; + mass = 21; + }; +}; \ No newline at end of file diff --git a/addons/miscFixes/fauxC7/config.cpp b/addons/miscFixes/fauxC7/config.cpp deleted file mode 100644 index dcdbbd075..000000000 --- a/addons/miscFixes/fauxC7/config.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "script_component.hpp" - -class CfgPatches { - class ADDON { - weapons[] = { - QGVAR(c7), - QGVAR(c7GL), - QGVAR(c7a2), - QGVAR(c7a2GL) - }; - units[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"potato_core", "CUP_Weapons_LoadOrder", "jsrs_soundmod_cup_weapons"}; - skipWhenMissingDependencies = 1; - author = "Potato"; - authors[] = {"Chesheire"}; - authorUrl = "https://github.com/BourbonWarfare/POTATO"; - VERSION_CONFIG; - }; -}; - -#include "CfgWeapons.hpp" diff --git a/addons/miscFixes/fauxC7/script_component.hpp b/addons/miscFixes/fauxC7/script_component.hpp deleted file mode 100644 index 04bba2947..000000000 --- a/addons/miscFixes/fauxC7/script_component.hpp +++ /dev/null @@ -1,12 +0,0 @@ -#define COMPONENT fauxC7 -#include "\z\potato\addons\core\script_mod.hpp" - -// #define DEBUG_MODE_FULL -// #define DISABLE_COMPILE_CACHE -// #define ENABLE_PERFORMANCE_COUNTERS - -#ifdef DEBUG_ENABLED_FAUXC7 - #define DEBUG_MODE_FULL -#endif - -#include "\z\potato\addons\core\script_macros.hpp" diff --git a/addons/miscFixes/fauxMG5/CfgWeapons.hpp b/addons/miscFixes/fauxMG5/CfgWeapons.hpp deleted file mode 100644 index 9f0e9f4ed..000000000 --- a/addons/miscFixes/fauxMG5/CfgWeapons.hpp +++ /dev/null @@ -1,17 +0,0 @@ -class CfgWeapons { - class MMG_01_tan_F; - class GVAR(MG5): MMG_01_tan_F { - author = "Potato"; - displayName = "H&K MG5"; - descriptionShort = "General Purpose Machine Gun
Caliber: 7.62x51 mm"; - baseWeapon = QGVAR(MG5); - recoil = "CUP_MG3_recoil"; - magazineWell[] = {"CBA_762x51_LINKS"}; - magazines[] = { - "CUP_120Rnd_TE4_LRT4_White_Tracer_762x51_Belt_M", - "CUP_120Rnd_TE4_LRT4_Red_Tracer_762x51_Belt_M", - "CUP_120Rnd_TE4_LRT4_Green_Tracer_762x51_Belt_M", - "CUP_120Rnd_TE4_LRT4_Yellow_Tracer_762x51_Belt_M" - }; - }; -}; \ No newline at end of file diff --git a/addons/miscFixes/fauxMG5/config.cpp b/addons/miscFixes/fauxMG5/config.cpp deleted file mode 100644 index 88711711c..000000000 --- a/addons/miscFixes/fauxMG5/config.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "script_component.hpp" - -class CfgPatches { - class ADDON { - weapons[] = { - QGVAR(MG5) - }; - units[] = {}; - requiredVersion = REQUIRED_VERSION; - requiredAddons[] = {"potato_core", "CUP_Weapons_LoadOrder"}; - skipWhenMissingDependencies = 1; - author = "Potato"; - authors[] = {"AChesheireCat"}; - authorUrl = "https://github.com/BourbonWarfare/POTATO"; - VERSION_CONFIG; - }; -}; - -#include "CfgWeapons.hpp" \ No newline at end of file