Compat SOG - Make compat auto load if DLC is present (#9204)

* Move SOG compat to addons/

* Set component to skip loading when SOG not present

* Use skipWhenMissingDependencies for GRAD Trenches compatiblity

* Tools - Add SOG dlc launch config

* move trenches to sub config, handle grad with 2nd subconfig

* fix `Land_vn_b_prop_fueldrum_01` UBC

* use ifndef

---------

Co-authored-by: PabstMirror <pabstmirror@gmail.com>
This commit is contained in:
Filip Maciejewski 2023-09-03 18:31:45 +02:00 committed by GitHub
parent 1a3bce1a23
commit a7d8c3eb3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
85 changed files with 212 additions and 73 deletions

View File

@ -36,3 +36,11 @@ preset = "Hemtt"
workshop = [
"450814997", # CBA_A3's Workshop ID
]
[hemtt.launch.vn]
workshop = [
"450814997", # CBA_A3's Workshop ID
]
dlc = [
"S.O.G. Prairie Fire",
]

View File

@ -24,7 +24,8 @@ class Land_vn_usaf_fueltank_75_01: Land_vn_building_b_base {
EGVAR(refuel,hooks)[] = {{0, -0.4, -0.5}};
EGVAR(refuel,fuelCargo) = 2840; // 750 * 3.785
};
class Land_vn_b_prop_fueldrum_01: Land_vn_building_b_base {
class Land_vn_object_b_base;
class Land_vn_b_prop_fueldrum_01: Land_vn_object_b_base {
transportFuel = 0;
EGVAR(refuel,hooks)[] = {{0, 0, 0.5}}; // reference is Land_FlexibleTank_01_F
EGVAR(refuel,fuelCargo) = 300; // reference is Land_FlexibleTank_01_F

View File

@ -505,37 +505,4 @@ class vn_o_vc_spiderhole_01: StaticWeapon {
EGVAR(dragging,canDrag) = 0;
EGVAR(cargo,canLoad) = 0;
EGVAR(trenches,diggingDuration) = QEGVAR(trenches,smallEnvelopeDigDuration);
EGVAR(trenches,removalDuration) = QEGVAR(trenches,smallEnvelopeRemoveDuration);
EGVAR(trenches,noGeoClass) = QGVAR(spiderhole_01_nogeo);
EGVAR(trenches,placementData)[] = {1.5, 1.5, 0.1};
EGVAR(trenches,grassCuttingPoints)[] = {};
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
class ACE_ContinueDiggingTrench {
displayName = ECSTRING(trenches,ContinueDiggingTrench);
condition = QUOTE([ARR_2(_target,_player)] call EFUNC(trenches,canContinueDiggingTrench));
statement = QUOTE([ARR_2(_target,_player)] call EFUNC(trenches,continueDiggingTrench););
};
};
};
};
class vn_o_vc_spiderhole_02: vn_o_vc_spiderhole_01 {
EGVAR(trenches,noGeoClass) = QGVAR(spiderhole_02_nogeo);
};
class vn_o_vc_spiderhole_03: vn_o_vc_spiderhole_01 {
EGVAR(trenches,noGeoClass) = QGVAR(spiderhole_03_nogeo);
EGVAR(trenches,placementData)[] = {1.5, 2.5, 0.1};
};
class GVAR(spiderhole_01_nogeo): vn_o_vc_spiderhole_01 {
scope = 1;
};
class GVAR(spiderhole_02_nogeo): vn_o_vc_spiderhole_02 {
scope = 1;
};
class GVAR(spiderhole_03_nogeo): vn_o_vc_spiderhole_03 {
scope = 1;
};

View File

@ -0,0 +1,14 @@
class vn_b_men_aircrew_base;
class vn_b_men_jetpilot_01: vn_b_men_aircrew_base {
ACE_GForceCoef = 0.55;
};
class vn_o_men_aircrew_01;
class vn_o_men_aircrew_05: vn_o_men_aircrew_01 {
ACE_GForceCoef = 0.55;
};
class vn_i_men_aircrew_base;
class vn_i_men_jetpilot_01: vn_i_men_aircrew_base {
ACE_GForceCoef = 0.55;
};

View File

@ -0,0 +1,63 @@
class CfgVehicles {
// Trench Actions
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class ACE_Equipment {
class EGVAR(trenches,digEnvelopeSmall);
class EGVAR(compat_sog,digSpiderhole): EGVAR(trenches,digEnvelopeSmall) {
displayName = ECSTRING(compat_sog,Action_DigSpiderhole);
statement = QUOTE([ARR_2({_this call EFUNC(trenches,placeTrench)},[ARR_2(_this select 0,'vn_o_vc_spiderhole_01')])] call CBA_fnc_execNextFrame);
};
class EGVAR(compat_sog,digSpiderholeAngled): EGVAR(trenches,digEnvelopeSmall) {
displayName = ECSTRING(compat_sog,Action_DigSpiderholeAngled);
statement = QUOTE([ARR_2({_this call EFUNC(trenches,placeTrench)},[ARR_2(_this select 0,'vn_o_vc_spiderhole_02')])] call CBA_fnc_execNextFrame);
};
class EGVAR(compat_sog,digSpiderholeDual): EGVAR(trenches,digEnvelopeSmall) {
displayName = ECSTRING(compat_sog,Action_DigSpiderholeDual);
statement = QUOTE([ARR_2({_this call EFUNC(trenches,placeTrench)},[ARR_2(_this select 0,'vn_o_vc_spiderhole_03')])] call CBA_fnc_execNextFrame);
};
};
};
};
// Spiderholes
class LandVehicle;
class StaticWeapon: LandVehicle {
class ACE_Actions {
class ACE_MainActions;
};
};
class vn_o_vc_spiderhole_01: StaticWeapon {
EGVAR(trenches,diggingDuration) = QEGVAR(trenches,smallEnvelopeDigDuration);
EGVAR(trenches,removalDuration) = QEGVAR(trenches,smallEnvelopeRemoveDuration);
EGVAR(trenches,noGeoClass) = QEGVAR(compat_sog,spiderhole_01_nogeo);
EGVAR(trenches,placementData)[] = {1.5, 1.5, 0.1};
EGVAR(trenches,grassCuttingPoints)[] = {};
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
class ACE_ContinueDiggingTrench {
displayName = ECSTRING(trenches,ContinueDiggingTrench);
condition = QUOTE([ARR_2(_target,_player)] call EFUNC(trenches,canContinueDiggingTrench));
statement = QUOTE([ARR_2(_target,_player)] call EFUNC(trenches,continueDiggingTrench););
};
};
};
};
class vn_o_vc_spiderhole_02: vn_o_vc_spiderhole_01 {
EGVAR(trenches,noGeoClass) = QEGVAR(compat_sog,spiderhole_02_nogeo);
};
class vn_o_vc_spiderhole_03: vn_o_vc_spiderhole_01 {
EGVAR(trenches,noGeoClass) = QEGVAR(compat_sog,spiderhole_03_nogeo);
EGVAR(trenches,placementData)[] = {1.5, 2.5, 0.1};
};
class EGVAR(compat_sog,spiderhole_01_nogeo): vn_o_vc_spiderhole_01 {
scope = 1;
};
class EGVAR(compat_sog,spiderhole_02_nogeo): vn_o_vc_spiderhole_02 {
scope = 1;
};
class EGVAR(compat_sog,spiderhole_03_nogeo): vn_o_vc_spiderhole_03 {
scope = 1;
};
};

View File

@ -0,0 +1,38 @@
#include "script_component.hpp"
#if __has_include("\vn\weapons_f_vietnam\config.bin")
#else
#define PATCH_SKIP "SOG-Vietnam"
#endif
#if __has_include("\z\ace\addons\csw\script_component.hpp")
#else
#ifndef PATCH_SKIP
#define PATCH_SKIP "ACE Trenches"
#endif
#endif
#ifdef PATCH_SKIP
ACE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP)
#else
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {
"loadorder_f_vietnam", "ace_trenches"
};
skipWhenMissingDependencies = 1;
author = ECSTRING(common,ACETeam);
authors[] = {"BaerMitUmlaut", "veteran29"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
#include "CfgVehicles.hpp"
#endif

View File

@ -0,0 +1,5 @@
#include "\z\ace\addons\compat_sog\script_component.hpp"
#define SUBCOMPONENT trenches
#undef ADDON
#define ADDON TRIPLES(PREFIX,COMPONENT,SUBCOMPONENT)

View File

@ -0,0 +1,20 @@
class CfgVehicles {
// Trench Actions
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class ACE_Equipment {
// delete in reverse order
delete EGVAR(compat_sog,digSpiderholeDual);
delete EGVAR(compat_sog,digSpiderholeAngled);
delete EGVAR(compat_sog,digSpiderhole);
delete EGVAR(trenches,digEnvelopeSmall);
};
};
};
// Spiderholes
delete EGVAR(compat_sog,spiderhole_01_nogeo);
delete EGVAR(compat_sog,spiderhole_02_nogeo);
delete EGVAR(compat_sog,spiderhole_03_nogeo);
};

View File

@ -0,0 +1,45 @@
#include "script_component.hpp"
#if __has_include("\vn\weapons_f_vietnam\config.bin")
#else
#define PATCH_SKIP "SOG-Vietnam"
#endif
#if __has_include("\z\ace\addons\csw\script_component.hpp")
#else
#ifndef PATCH_SKIP
#define PATCH_SKIP "ACE Trenches"
#endif
#endif
#if __has_include("\x\grad_trenches\addons\main\script_component.hpp")
#else
#ifndef PATCH_SKIP
#define PATCH_SKIP "Grad Trenches"
#endif
#endif
#ifdef PATCH_SKIP
ACE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP)
#else
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {
"loadorder_f_vietnam", "ace_compat_sog_trenches", "grad_trenches_main"
};
skipWhenMissingDependencies = 1;
author = ECSTRING(common,ACETeam);
authors[] = {"BaerMitUmlaut", "veteran29"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
#include "CfgVehicles.hpp"
#endif

View File

@ -0,0 +1,5 @@
#include "\z\ace\addons\compat_sog\script_component.hpp"
#define SUBCOMPONENT trenches_grad
#undef ADDON
#define ADDON TRIPLES(PREFIX,COMPONENT,SUBCOMPONENT)

View File

@ -1,5 +1,14 @@
#include "script_component.hpp"
#if __has_include("\vn\weapons_f_vietnam\config.bin")
#else
#define PATCH_SKIP "SOG-Vietnam"
#endif
#ifdef PATCH_SKIP
ACE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP)
#else
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
@ -36,9 +45,9 @@ class CfgPatches {
};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {
"ace_trenches",
"loadorder_f_vietnam"
};
skipWhenMissingDependencies = 1;
author = ECSTRING(common,ACETeam);
authors[] = {"BaerMitUmlaut", "veteran29"};
url = ECSTRING(main,URL);
@ -56,3 +65,5 @@ class CfgPatches {
#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"
#include "EMM_mainMenu_CfgMenus.hpp"
#endif

View File

@ -1,38 +0,0 @@
#if __has_include("\x\grad_trenches\addons\main\config.bin")
#else
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class ACE_Equipment {
class EGVAR(trenches,digEnvelopeSmall);
class GVAR(digSpiderhole): EGVAR(trenches,digEnvelopeSmall) {
displayName = CSTRING(Action_DigSpiderhole);
statement = QUOTE([ARR_2({_this call EFUNC(trenches,placeTrench)},[ARR_2(_this select 0,'vn_o_vc_spiderhole_01')])] call CBA_fnc_execNextFrame);
};
class GVAR(digSpiderholeAngled): EGVAR(trenches,digEnvelopeSmall) {
displayName = CSTRING(Action_DigSpiderholeAngled);
statement = QUOTE([ARR_2({_this call EFUNC(trenches,placeTrench)},[ARR_2(_this select 0,'vn_o_vc_spiderhole_02')])] call CBA_fnc_execNextFrame);
};
class GVAR(digSpiderholeDual): EGVAR(trenches,digEnvelopeSmall) {
displayName = CSTRING(Action_DigSpiderholeDual);
statement = QUOTE([ARR_2({_this call EFUNC(trenches,placeTrench)},[ARR_2(_this select 0,'vn_o_vc_spiderhole_03')])] call CBA_fnc_execNextFrame);
};
};
};
};
#endif
class vn_b_men_aircrew_base;
class vn_b_men_jetpilot_01: vn_b_men_aircrew_base {
ACE_GForceCoef = 0.55;
};
class vn_o_men_aircrew_01;
class vn_o_men_aircrew_05: vn_o_men_aircrew_01 {
ACE_GForceCoef = 0.55;
};
class vn_i_men_aircrew_base;
class vn_i_men_jetpilot_01: vn_i_men_aircrew_base {
ACE_GForceCoef = 0.55;
};