From e6407fdd8974ac2f2f73405991499183c4a25a61 Mon Sep 17 00:00:00 2001 From: Bailey Danyluk Date: Mon, 27 May 2024 21:04:00 -0600 Subject: [PATCH] Isolate MANPAD and IR --- addons/manpad/$PBOPREFIX$ | 1 + addons/manpad/CfgAmmo.hpp | 90 ++++++++++++++++++++++++ addons/manpad/CfgMagazines.hpp | 22 ++++++ addons/manpad/CfgVehicles.hpp | 108 +++++++++++++++++++++++++++++ addons/manpad/CfgWeapons.hpp | 23 ++++++ addons/manpad/README.md | 12 ++++ addons/manpad/config.cpp | 21 ++++++ addons/manpad/script_component.hpp | 18 +++++ addons/manpad/stringtable.xml | 17 +++++ 9 files changed, 312 insertions(+) create mode 100644 addons/manpad/$PBOPREFIX$ create mode 100644 addons/manpad/CfgAmmo.hpp create mode 100644 addons/manpad/CfgMagazines.hpp create mode 100644 addons/manpad/CfgVehicles.hpp create mode 100644 addons/manpad/CfgWeapons.hpp create mode 100644 addons/manpad/README.md create mode 100644 addons/manpad/config.cpp create mode 100644 addons/manpad/script_component.hpp create mode 100644 addons/manpad/stringtable.xml diff --git a/addons/manpad/$PBOPREFIX$ b/addons/manpad/$PBOPREFIX$ new file mode 100644 index 0000000000..4c93d594fc --- /dev/null +++ b/addons/manpad/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\manpad \ No newline at end of file diff --git a/addons/manpad/CfgAmmo.hpp b/addons/manpad/CfgAmmo.hpp new file mode 100644 index 0000000000..cf59197990 --- /dev/null +++ b/addons/manpad/CfgAmmo.hpp @@ -0,0 +1,90 @@ +class CfgAmmo { + class ammo_Missile_rim116; + class GVAR(rim116): ammo_Missile_rim116 { + maneuvrability = 0; + missileLockMaxSpeed = 2000; + + missileLockCone = 3; // caged lock + missileKeepLockedCone = 45; + missileLockMaxDistance = 5000; + missileLockMinDistance = 250; + + class ace_missileguidance { + enabled = 1; + + pitchRate = 50; // Minium flap deflection for guidance + yawRate = 50; // Maximum flap deflection for guidance + + canVanillaLock = 1; // Can this default vanilla lock? Only applicable to non-cadet mode + + // Guidance type for munitions + defaultSeekerType = "IR"; + seekerTypes[] = { "IR" }; + + flareDistanceFilter = 100; + flareAngleFilter = 0.5; // can filter out flares that are >= flareAngleFilter to known target velocity + + defaultSeekerLockMode = "LOBL"; + seekerLockModes[] = { "LOBL" }; + + defaultNavigationType = "ZeroEffortMiss"; + navigationTypes[] = { "ZeroEffortMiss" }; + + seekLastTargetPos = 0; // seek last target position [if seeker loses LOS of target, continue to last known pos] + seekerAngle = 45; // Angle from the shooter's view that can track the missile + seekerAccuracy = 0.8; // seeker accuracy multiplier + + seekerMinRange = 75; + seekerMaxRange = 5000; // Range from the missile which the seeker can visually search + + // Attack profile type selection + defaultAttackProfile = "DIR"; + attackProfiles[] = {"DIR"}; + }; + }; + + class M_70mm_SAAMI; + class GVAR(stinger): M_70mm_SAAMI { + maneuvrability = 0; + missileLockMaxSpeed = 2000; + + missileLockCone = 3; // caged lock + missileKeepLockedCone = 45; + missileLockMaxDistance = 5000; + missileLockMinDistance = 250; + + class ace_missileguidance { + enabled = 1; + + pitchRate = 42; // Minium flap deflection for guidance + yawRate = 42; // Maximum flap deflection for guidance + + canVanillaLock = 1; // Can this default vanilla lock? Only applicable to non-cadet mode + + // Guidance type for munitions + defaultSeekerType = "IR"; + seekerTypes[] = { "IR" }; + + flareDistanceFilter = 100; + flareAngleFilter = 1.3; // can filter out flares that are >= flareAngleFilter to known target velocity + + defaultSeekerLockMode = "LOBL"; + seekerLockModes[] = { "LOBL" }; + + defaultNavigationType = "AugmentedProportionalNavigation"; + navigationTypes[] = { "AugmentedProportionalNavigation" }; + + seekLastTargetPos = 0; // seek last target position [if seeker loses LOS of target, continue to last known pos] + seekerAngle = 45; // Angle from the shooter's view that can track the missile + seekerAccuracy = 0.8; // seeker accuracy multiplier + + seekerMinRange = 75; + seekerMaxRange = 5000; // Range from the missile which the seeker can visually search + + // Attack profile type selection + defaultAttackProfile = "DIR"; + attackProfiles[] = {"DIR"}; + }; + }; +}; + diff --git a/addons/manpad/CfgMagazines.hpp b/addons/manpad/CfgMagazines.hpp new file mode 100644 index 0000000000..22f8054998 --- /dev/null +++ b/addons/manpad/CfgMagazines.hpp @@ -0,0 +1,22 @@ +class CfgMagazines { + class magazine_Missile_rim116_x21; + class GVAR(rim116): magazine_Missile_rim116_x21 { + author = "Dani (TCVM)"; + displayName = CSTRING(rim116_21x); + ammo = QGVAR(rim116); + }; + + class 4Rnd_70mm_SAAMI_missiles; + class GVAR(stinger): 4Rnd_70mm_SAAMI_missiles { + author = "Dani (TCVM)"; + displayName = CSTRING(stinger_4x); + ammo = QGVAR(stinger); + }; + + class Titan_AA; + class GVAR(stinger_man): Titan_AA { + author = "Dani (TCVM)"; + displayName = CSTRING(stinger); + ammo = QGVAR(stinger); + }; +}; diff --git a/addons/manpad/CfgVehicles.hpp b/addons/manpad/CfgVehicles.hpp new file mode 100644 index 0000000000..7bbc7fb182 --- /dev/null +++ b/addons/manpad/CfgVehicles.hpp @@ -0,0 +1,108 @@ +class CfgVehicles { + class LandVehicle; + class StaticWeapon: LandVehicle { + class Turrets; + }; + class StaticMGWeapon: StaticWeapon { + class Turrets: Turrets { + class MainTurret; + }; + }; + + class SAM_System_01_base_F: StaticMGWeapon { + class AnimationSources { + class Missiles_revolving { + source = "revolving"; + weapon = QGVAR(rim116); + }; + }; + + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {QGVAR(rim116)}; + magazines[] = {QGVAR(rim116)}; + }; + }; + }; + + class Tank; + class Tank_F: Tank { + class Turrets { + class MainTurret; + }; + }; + class LT_01_base_F: Tank_F { + class AnimationSources; + class Turrets: Turrets {}; + }; + + class LT_01_AA_base_F: LT_01_base_F { + class AnimationSources: AnimationSources { + class Missiles_revolving { + source = "revolving"; + weapon = QGVAR(FIM92); + }; + }; + + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"SmokeLauncher", QGVAR(FIM92), "HMG_127"}; + magazines[] = { + "SmokeLauncherMag", + QGVAR(stinger), + QGVAR(stinger), + "100Rnd_127x99_mag_Tracer_Red", + "100Rnd_127x99_mag_Tracer_Red", + "100Rnd_127x99_mag_Tracer_Red", + "100Rnd_127x99_mag_Tracer_Red" + }; + }; + }; + }; + + class APC_Tracked_01_base_F: Tank_F { + class Turrets: Turrets { + class MainTurret: MainTurret {}; + }; + }; + class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F { + class AnimationSources; + }; + class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F { + class AnimationSources: AnimationSources { + class Missiles_revolving { + source = "revolving"; + weapon = QGVAR(FIM92); + }; + }; + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"autocannon_35mm", QGVAR(FIM92)}; + magazines[] = {"680Rnd_35mm_AA_shells_Tracer_Red", QGVAR(stinger), QGVAR(stinger)}; + }; + }; + }; + + class APC_Tracked_02_base_F: Tank_F { + class Turrets: Turrets { + class MainTurret: MainTurret {}; + }; + }; + class O_APC_Tracked_02_base_F: APC_Tracked_02_base_F { + class AnimationSources; + }; + class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F { + class AnimationSources: AnimationSources { + class Missiles_revolving { + source = "revolving"; + weapon = QGVAR(FIM92); + }; + }; + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"autocannon_35mm", QGVAR(FIM92)}; + magazines[] = {"680Rnd_35mm_AA_shells_Tracer_Green", QGVAR(stinger), QGVAR(stinger)}; + }; + }; + }; +}; diff --git a/addons/manpad/CfgWeapons.hpp b/addons/manpad/CfgWeapons.hpp new file mode 100644 index 0000000000..adba9137d2 --- /dev/null +++ b/addons/manpad/CfgWeapons.hpp @@ -0,0 +1,23 @@ +class CfgWeapons { + class weapon_rim116Launcher; + class GVAR(rim116): weapon_rim116Launcher { + author = "Dani (TCVM)"; + displayName = CSTRING(rim116); + magazines[] = { QGVAR(rim116) }; + weaponLockDelay = 0.5; + }; + + class missiles_SAAMI; + class GVAR(FIM92): missiles_SAAMI { + author = "Dani (TCVM)"; + displayName = CSTRING(stinger); + magazines[] = { QGVAR(stinger) }; + weaponLockDelay = 0.5; + }; + + class Launcher_Base_F; + class launch_Titan_base: Launcher_Base_F { + magazines[] = {QGVAR(stinger_man)}; + }; +}; + diff --git a/addons/manpad/README.md b/addons/manpad/README.md new file mode 100644 index 0000000000..dedbe7ba36 --- /dev/null +++ b/addons/manpad/README.md @@ -0,0 +1,12 @@ +ace_manpad +=================== + +Adds missile guidance to all vanilla MANPAD systems + + +## Maintainers + +The people responsible for merging changes to this component or answering potential questions. + +- [Dani-TCVM](https://github.com/TheCandianVendingMachine) + diff --git a/addons/manpad/config.cpp b/addons/manpad/config.cpp new file mode 100644 index 0000000000..d285b08cfc --- /dev/null +++ b/addons/manpad/config.cpp @@ -0,0 +1,21 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_common","ace_missileguidance"}; + author = ECSTRING(common,ACETeam); + authors[] = {"Dani (TCVM)"}; + url = ECSTRING(main,URL); + VERSION_CONFIG; + }; +}; + +#include "CfgAmmo.hpp" +#include "CfgMagazines.hpp" +#include "CfgWeapons.hpp" +#include "CfgVehicles.hpp" + diff --git a/addons/manpad/script_component.hpp b/addons/manpad/script_component.hpp new file mode 100644 index 0000000000..d1269fc368 --- /dev/null +++ b/addons/manpad/script_component.hpp @@ -0,0 +1,18 @@ +#define COMPONENT manpad +#define COMPONENT_BEAUTIFIED MANPAD +#include "\z\ace\addons\main\script_mod.hpp" + +// #define DEBUG_MODE_FULL +// #define DISABLE_COMPILE_CACHE +// #define ENABLE_PERFORMANCE_COUNTERS + +#ifdef DEBUG_ENABLED_MANPAD + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_MANPAD + #define DEBUG_SETTINGS DEBUG_SETTINGS_MANPAD +#endif + +#include "\z\ace\addons\main\script_macros.hpp" + diff --git a/addons/manpad/stringtable.xml b/addons/manpad/stringtable.xml new file mode 100644 index 0000000000..5d6475b394 --- /dev/null +++ b/addons/manpad/stringtable.xml @@ -0,0 +1,17 @@ + + + + + FIM-92 Stinger [ACE] + + + RIM-116 [ACE] + + + 21x RIM-116 [ACE] + + + 4x FIM-92 Stinger [ACE] + + +