From a4b258faef8ef11c41e29191e7590d8084bcf8fc Mon Sep 17 00:00:00 2001 From: lambdatiger Date: Wed, 19 Feb 2025 21:30:11 -0600 Subject: [PATCH] Misc Fixes - Change ATGM firing smoke to be less obstructive (#650) * added vanilla copies to use for ATGMs * Added cup compat * Added RHSAFRF compat * Added GM compat --- addons/miscFixes/CfgCloudlets.hpp | 225 +++++++++++++++++++++++ addons/miscFixes/config.cpp | 1 + addons/miscFixes/patchCUP/CfgAmmo.hpp | 6 + addons/miscFixes/patchCUP/config.cpp | 10 +- addons/miscFixes/patchGM/CfgAmmo.hpp | 18 +- addons/miscFixes/patchRHSAFRF/config.cpp | 24 ++- 6 files changed, 281 insertions(+), 3 deletions(-) create mode 100644 addons/miscFixes/CfgCloudlets.hpp create mode 100644 addons/miscFixes/patchCUP/CfgAmmo.hpp diff --git a/addons/miscFixes/CfgCloudlets.hpp b/addons/miscFixes/CfgCloudlets.hpp new file mode 100644 index 000000000..fda639d47 --- /dev/null +++ b/addons/miscFixes/CfgCloudlets.hpp @@ -0,0 +1,225 @@ +class CfgCloudlets { + class Default; + class Missile2_vanilla: Default { + interval = "0.003"; + circleRadius = 0; + circleVelocity[] = {0,0,0}; + angleVar = 1; + particleFSLoop = 0; + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal"; + particleFSNtieth = 16; + particleFSIndex = 12; + particleFSFrameCount = 8; + animationName = ""; + particleType = "Billboard"; + timerPeriod = 1; + lifeTime = 1.2; + moveVelocity[] = {0,0,0}; + rotationVelocity = 1; + weight = 1; + volume = 0.8; + rubbing = 0.5; + size[] = {1,2}; + color[] = {{0.4,0.4,0.4,0.07},{0.6,0.6,0.6,0}}; + animationSpeed[] = {5}; + randomDirectionPeriod = 0.1; + randomDirectionIntensity = 0.1; + onTimerScript = ""; + beforeDestroyScript = ""; + blockAIVisibility = 0; + lifeTimeVar = 0; + positionVar[] = {0.3,0.3,0.3}; + MoveVelocityVar[] = {1.2,1.2,1.2}; + rotationVelocityVar = 20; + sizeVar = 0.2; + colorVar[] = {0,0,0,0}; + randomDirectionPeriodVar = 0; + randomDirectionIntensityVar = 0; + }; + class Missile2Med_vanilla: Default { + interval = "0.006"; + circleRadius = 0; + circleVelocity[] = {0,0,0}; + angleVar = 1; + particleFSLoop = 0; + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal"; + particleFSNtieth = 16; + particleFSIndex = 12; + particleFSFrameCount = 8; + animationName = ""; + particleType = "Billboard"; + timerPeriod = 1; + lifeTime = 0.6; + moveVelocity[] = {0,0,0}; + rotationVelocity = 1; + weight = 1; + volume = 0.8; + rubbing = 0.5; + size[] = {1,2}; + color[] = {{0.4,0.4,0.4,0.07},{0.6,0.6,0.6,0}}; + animationSpeed[] = {5}; + randomDirectionPeriod = 0.1; + randomDirectionIntensity = 0.1; + onTimerScript = ""; + beforeDestroyScript = ""; + blockAIVisibility = 0; + lifeTimeVar = 0; + positionVar[] = {0.3,0.3,0.3}; + MoveVelocityVar[] = {1.2,1.2,1.2}; + rotationVelocityVar = 20; + sizeVar = 0.2; + colorVar[] = {0,0,0,0}; + randomDirectionPeriodVar = 0; + randomDirectionIntensityVar = 0; + }; + class Missile3_vanilla: Default { + interval = 0.001; + circleRadius = 0; + circleVelocity[] = {0,0,0}; + angleVar = 1; + particleFSLoop = 0; + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal"; + particleFSNtieth = 16; + particleFSIndex = 12; + particleFSFrameCount = 8; + animationName = ""; + particleType = "Billboard"; + timerPeriod = 1; + lifeTime = 2; + moveVelocity[] = {0,0,0}; + rotationVelocity = 1; + weight = 1; + volume = 0.8; + rubbing = 0.5; + size[] = {1,2,2.8}; + color[] = {{0.5,0.5,0.5,0.07},{0.6,0.6,0.6,0.02},{0.7,0.7,0.7,0.01},{0.8,0.8,0.8,0.005},{0.9,0.9,0.9,0.003}}; + animationSpeed[] = {5}; + randomDirectionPeriod = 0.1; + randomDirectionIntensity = 0.1; + onTimerScript = ""; + beforeDestroyScript = ""; + blockAIVisibility = 0; + lifeTimeVar = 0.2; + positionVar[] = {0.3,0.3,0.3}; + MoveVelocityVar[] = {0.4,0.4,0.4}; + rotationVelocityVar = 20; + sizeVar = 0.15; + colorVar[] = {0,0,0,0}; + randomDirectionPeriodVar = 0; + randomDirectionIntensityVar = 0; + }; + class Missile3Med_vanilla: Default { + interval = 0.003; + circleRadius = 0; + circleVelocity[] = {0,0,0}; + angleVar = 1; + particleFSLoop = 0; + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal"; + particleFSNtieth = 16; + particleFSIndex = 12; + particleFSFrameCount = 8; + animationName = ""; + particleType = "Billboard"; + timerPeriod = 1; + lifeTime = 0.8; + moveVelocity[] = {0,0,0}; + rotationVelocity = 1; + weight = 1; + volume = 0.8; + rubbing = 0.5; + size[] = {1,2,2.8}; + color[] = {{0.5,0.5,0.5,0.07},{0.6,0.6,0.6,0.02},{0.7,0.7,0.7,0.01},{0.8,0.8,0.8,0.005},{0.9,0.9,0.9,0.003}}; + animationSpeed[] = {5}; + randomDirectionPeriod = 0.1; + randomDirectionIntensity = 0.1; + onTimerScript = ""; + beforeDestroyScript = ""; + blockAIVisibility = 0; + lifeTimeVar = 0.2; + positionVar[] = {0.3,0.3,0.3}; + MoveVelocityVar[] = {0.4,0.4,0.4}; + rotationVelocityVar = 20; + sizeVar = 0.15; + colorVar[] = {0,0,0,0}; + randomDirectionPeriodVar = 0; + randomDirectionIntensityVar = 0; + }; + class Missile4_vanilla: Default { + circleVelocity[] = {0,0,0}; + moveVelocity[] = {0,0,0}; + size[] = {2.7,3}; + color[] = {{0.8,0.8,0.8,0.05},{1,1,1,0}}; + animationSpeed[] = {1}; + blockAIVisibility = 0; + positionVar[] = {0.3,0.3,0.3}; + MoveVelocityVar[] = {0.4,0.4,0.4}; + colorVar[] = {0,0,0,0}; + interval = 0.0025; + circleRadius = 0; + angleVar = 1; + particleFSLoop = 0; + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal"; + particleFSNtieth = 16; + particleFSIndex = 12; + particleFSFrameCount = 8; + animationName = ""; + particleType = "Billboard"; + timerPeriod = 1; + lifeTime = 8; + rotationVelocity = 1; + weight = 1.24; + volume = 1; + rubbing = 1; + randomDirectionPeriod = 0.1; + randomDirectionIntensity = 0.1; + onTimerScript = ""; + beforeDestroyScript = ""; + lifeTimeVar = 0.1; + rotationVelocityVar = 20; + sizeVar = 0.2; + randomDirectionPeriodVar = 0; + randomDirectionIntensityVar = 0; + position[] = {0,0,0}; + positionVarConst[] = {0,0,0}; + MoveVelocityVarConst[] = {0,0,0}; + colorCoef[] = {1,1,1,1}; + angle = 0; + sizeCoef = 1; + animationSpeedCoef = 1; + }; +}; + +class Missile2 { + class Missile2; + class Missile2Med; +}; +class Missile2_vanilla: Missile2 { + class Missile2: Missile2 { + type = "Missile2_vanilla"; + }; + class Missile2Med: Missile2Med { + type = "Missile2Med_vanilla"; + }; +}; + +class Missile3 { + class Missile3; + class Missile3Med; +}; +class Missile3_vanilla: Missile3 { + class Missile3: Missile3 { + type = "Missile3_vanilla"; + }; + class Missile23ed: Missile3Med { + type = "Missile3Med_vanilla"; + }; +}; + +class Missile4 { + class Missile4; +}; +class Missile4_vanilla: Missile4 { + class Missile4: Missile4 { + type = "Missile4_vanilla"; + }; +}; diff --git a/addons/miscFixes/config.cpp b/addons/miscFixes/config.cpp index ceb7605c3..9bca762b2 100644 --- a/addons/miscFixes/config.cpp +++ b/addons/miscFixes/config.cpp @@ -25,6 +25,7 @@ class RscChatListDefault { }; #include "CfgAmmo.hpp" +#include "CfgCloudlets.hpp" #include "CfgEden.hpp" #include "CfgEventHandlers.hpp" #include "CfgVehicles.hpp" diff --git a/addons/miscFixes/patchCUP/CfgAmmo.hpp b/addons/miscFixes/patchCUP/CfgAmmo.hpp new file mode 100644 index 000000000..777fafbcf --- /dev/null +++ b/addons/miscFixes/patchCUP/CfgAmmo.hpp @@ -0,0 +1,6 @@ +class CfgAmmo { + class MissileBase; + class cup_m_9k11_at3_sagger_at: MissileBase { + effectsMissile = "Missile4_vanilla"; + }; +}; \ No newline at end of file diff --git a/addons/miscFixes/patchCUP/config.cpp b/addons/miscFixes/patchCUP/config.cpp index c83492327..9d7ea8a18 100644 --- a/addons/miscFixes/patchCUP/config.cpp +++ b/addons/miscFixes/patchCUP/config.cpp @@ -7,7 +7,14 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = { "potato_core", "potato_customGear", "CUP_Weapons_LoadOrder", "CUP_Vehicles_LoadOrder", "CUP_Creatures_People_LoadOrder" }; + requiredAddons[] = { + "potato_core", + "potato_miscFixes", + "potato_customGear", + "CUP_Weapons_LoadOrder", + "CUP_Vehicles_LoadOrder", + "CUP_Creatures_People_LoadOrder" + }; skipWhenMissingDependencies = 1; author = "Bourbon Warfare"; authorUrl = "https://github.com/BourbonWarfare/POTATO"; @@ -21,6 +28,7 @@ class MainTurret: MainTurret {\ };\ } +#include "CfgAmmo.hpp" class CfgVehicles { #include "CfgVehiclesA10A.hpp" // Base classes diff --git a/addons/miscFixes/patchGM/CfgAmmo.hpp b/addons/miscFixes/patchGM/CfgAmmo.hpp index b6abe078d..66435e1b5 100644 --- a/addons/miscFixes/patchGM/CfgAmmo.hpp +++ b/addons/miscFixes/patchGM/CfgAmmo.hpp @@ -48,4 +48,20 @@ class CfgAmmo { ACEGVAR(frag,classes)[] = {QACEGVAR(frag,tiny_HD), QACEGVAR(frag,small_HD), QACEGVAR(frag,small_HD)}; ACEGVAR(frag,fragCount) = 350; }; -}; \ No newline at end of file + + // Make the missiles aimable by returning old smoke effects + class gm_missile_saclos_base; + class gm_missile_fagot_base: gm_missile_saclos_base { + effectsMissile = "missile2_vanilla"; + }; + class gm_missile_milan_base: gm_missile_saclos_base { + effectsMissile = "missile2_vanilla"; + }; + class gm_missile_bastion_base: gm_missile_saclos_base { + effectsMissile = "missile2_vanilla"; + }; + class gm_missile_maljutka_base: gm_missile_saclos_base { + effectsMissile = "missile2_vanilla"; + }; + +}; diff --git a/addons/miscFixes/patchRHSAFRF/config.cpp b/addons/miscFixes/patchRHSAFRF/config.cpp index 2b2802ed2..d81ca5111 100644 --- a/addons/miscFixes/patchRHSAFRF/config.cpp +++ b/addons/miscFixes/patchRHSAFRF/config.cpp @@ -7,7 +7,11 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = REQUIRED_VERSION; - requiredAddons[] = { "potato_core", "rhs_main_loadorder" }; + requiredAddons[] = { + "potato_core", + "potato_miscFixes", + "rhs_main_loadorder" + }; skipWhenMissingDependencies = 1; author = "Bourbon Warfare"; authorUrl = "https://github.com/BourbonWarfare/POTATO"; @@ -15,6 +19,24 @@ class CfgPatches { }; }; +class RHS_Missile2 { + class Missile2 { + type = "Missile2_vanilla"; + }; + class Missile2Med { + type = "Missile2Med_vanilla"; + }; +}; + +class RHS_Missile3 { + class Missile3 { + type = "Missile3_vanilla"; + }; + class Missile3Med { + type = "Missile3Med_vanilla"; + }; +}; + #include "CfgAmmo.hpp" #include "CfgVehicles.hpp" #include "CfgWeapons.hpp"