diff --git a/addons/compat_gm/CfgVehicles.hpp b/addons/compat_gm/CfgVehicles.hpp index 6d03465cd7..d470e8a615 100644 --- a/addons/compat_gm/CfgVehicles.hpp +++ b/addons/compat_gm/CfgVehicles.hpp @@ -81,15 +81,242 @@ class CfgVehicles { class gm_brdm2_base: gm_wheeled_APC_base { EGVAR(refuel,fuelCapacity) = 290; + + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_01', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + }; + class AmmoBox_02_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_02', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + }; + class AmmoBox_03_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_03', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + }; + }; + }; + class gm_brdm2um_base: gm_brdm2_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class AmmoBox_01_unhide: AmmoBox_01_unhide { + positions[] = {{-0.1, -1.9, -0.5}}; + }; + class AmmoBox_02_unhide: AmmoBox_02_unhide { + positions[] = {{-0.55, -0.35, -0.35}}; + }; + class AmmoBox_03_unhide: AmmoBox_03_unhide { + positions[] = {{0.3, -1.85, -0.5}}; + }; + }; }; class gm_btr60_base: gm_wheeled_APC_base { EGVAR(refuel,fuelCapacity) = 290; EGVAR(cookoff,cookoffSelections)[] = {"commanderturret_hatch"}; + + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_01', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_02_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_02', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_03_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_03', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_04_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_04', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_05_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_05', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_06_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_06', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_07_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['ammobox_07', 'FireGeometry', 'AveragePoint']"}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + }; + }; + }; + + class gm_ural375d_base: gm_wheeled_truck_base { + EGVAR(refuel,fuelCapacity) = 360; + + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + positions[] = {{-0.55, 1.83, 0.7}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 2.5; + }; + class AmmoBox_02_unhide { + phase = 0; + positions[] = {{0, 1.83, 0.7}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 3; + }; + class AmmoBox_03_unhide { + phase = 0; + positions[] = {{0.55, 1.83, 0.7}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 2.5; + }; + class AmmoBox_04_unhide { + phase = 0; + positions[] = {{-0.45, 1.83, 0.7}}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + distance = 2.5; + }; + }; + }; + class gm_ural375d_mlrs_base: gm_ural375d_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class AmmoBox_01_unhide: AmmoBox_01_unhide { + positions[] = {{-0.55, 2, 0.5}}; + }; + class AmmoBox_02_unhide: AmmoBox_02_unhide { + positions[] = {{0, 2, 0.5}}; + }; + class AmmoBox_03_unhide: AmmoBox_03_unhide { + positions[] = {{0.55, 2, 0.5}}; + }; + class AmmoBox_04_unhide: AmmoBox_04_unhide { + positions[] = {{-0.45, 2, 0.5}}; + }; + }; + }; + class gm_ural375d_medic_base: gm_ural375d_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class AmmoBox_01_unhide: AmmoBox_01_unhide { + positions[] = {{-0.55, 2, 0.7}}; + }; + class AmmoBox_02_unhide: AmmoBox_02_unhide { + positions[] = {{0, 2, 0.7}}; + }; + class AmmoBox_03_unhide: AmmoBox_03_unhide { + positions[] = {{0.55, 2, 0.7}}; + }; + class AmmoBox_04_unhide: AmmoBox_04_unhide { + positions[] = {{-0.45, 2, 0.7}}; + }; + }; }; class gm_ural4320_base: gm_wheeled_truck_base { EGVAR(refuel,fuelCapacity) = 360; + + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + positions[] = {{-0.55, 1.47, 0.7}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 2.5; + }; + class AmmoBox_02_unhide { + phase = 0; + positions[] = {{0, 1.47, 0.7}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 3; + }; + class AmmoBox_03_unhide { + phase = 0; + positions[] = {{0.55, 1.47, 0.7}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 2.5; + }; + class AmmoBox_04_unhide { + phase = 0; + positions[] = {{-0.45, 1.47, 0.7}}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + distance = 2.5; + }; + }; + }; + class gm_ural4320_repair_base: gm_ural4320_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class AmmoBox_01_unhide: AmmoBox_01_unhide { + positions[] = {{-0.55, 1.62, 0.7}}; + }; + class AmmoBox_02_unhide: AmmoBox_02_unhide { + positions[] = {{0, 1.62, 0.7}}; + }; + class AmmoBox_03_unhide: AmmoBox_03_unhide { + positions[] = {{0.55, 1.62, 0.7}}; + }; + class AmmoBox_04_unhide: AmmoBox_04_unhide { + positions[] = {{-0.45, 1.62, 0.7}}; + }; + }; + }; + class gm_ural44202_base: gm_ural4320_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class AmmoBox_01_unhide: AmmoBox_01_unhide { + positions[] = {{-0.55, 1.37, 0.7}}; + }; + class AmmoBox_02_unhide: AmmoBox_02_unhide { + positions[] = {{0, 1.37, 0.7}}; + }; + class AmmoBox_03_unhide: AmmoBox_03_unhide { + positions[] = {{0.55, 1.37, 0.7}}; + }; + class AmmoBox_04_unhide: AmmoBox_04_unhide { + positions[] = {{-0.45, 1.37, 0.7}}; + }; + }; }; class gm_ural4320_reammo_base: gm_ural4320_base { @@ -190,9 +417,103 @@ class CfgVehicles { EGVAR(refuel,fuelCapacity) = 460; EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch","commanderturret_hatch"}; }; + class gm_bmp1sp2_base: gm_bmp1_base { + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + positions[] = {{-1.2, -2.52, -1.2}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_02_unhide { + phase = 0; + positions[] = {{-1.3, -2, -1.2}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_03_unhide { + phase = 0; + positions[] = {{-1.35, -1.43, -1.2}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_04_unhide { + phase = 0; + positions[] = {{1.2, -2.52, -1.2}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_05_unhide { + phase = 0; + positions[] = {{1.3, -2, -1.2}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_06_unhide { + phase = 0; + positions[] = {{1.35, -1.43, -1.2}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_07_unhide { + phase = 0; + positions[] = {{-1.45, 0.1, -1.3}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_08_unhide { + phase = 0; + positions[] = {{-1.45, 2, -1.3}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + class AmmoBox_09_unhide { + phase = 0; + positions[] = {{1.45, 2, -1.3}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + }; + }; + }; class gm_pt76_base: gm_tracked_Tank_base { EGVAR(refuel,fuelCapacity) = 250; + + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + positions[] = {{0.08, -1.75, -1}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 2.5; + }; + class AmmoBox_02_unhide { + phase = 0; + positions[] = {{0.08, -1.38, -1}}; + items[] = {"gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"}; + name = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + text = "$STR_DN_gm_AmmoBox_880Rnd_762x39mm_b_M43_ak47"; + distance = 2.5; + }; + class AmmoBox_03_unhide { + phase = 0; + positions[] = {{0.08, -2.15, -1}}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + distance = 2.5; + }; + }; }; class gm_t55_base: gm_tracked_Tank_base { @@ -204,6 +525,21 @@ class CfgVehicles { EGVAR(refuel,fuelCapacity) = 812; }; + class gm_tracked_Artillery_base; + class gm_2s1_base: gm_tracked_Artillery_base { + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, -1.3, 0] vectorAdd ([[0, -1.1, -0.35], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + distance = 2.5; + }; + }; + }; + // WEST class gm_Leopard1_base; class gm_Leopard1a0_base: gm_Leopard1_base { @@ -211,6 +547,27 @@ class CfgVehicles { EGVAR(cookoff,cookoffSelections)[] = {"mainturret_hatch_1","commanderturret_hatch"}; }; + class gm_Leopard1a1_base: gm_Leopard1a0_base { + class EGVAR(interaction,anims) { + class AmmoBox_01_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, -0.6, 0] vectorAdd ([[0.7, -2, -0.6], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + }; + class AmmoBox_02_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, -0.6, 0] vectorAdd ([[-0.3, -1.95, -0.6], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"gm_AmmoBox_wood_04_empty"}; + name = "$STR_DN_gm_AmmoBox_wood_04_base"; + text = "$STR_DN_gm_AmmoBox_wood_04_base"; + }; + }; + }; + class gm_Gepard_base: gm_Leopard1_base { EGVAR(refuel,fuelCapacity) = 985; }; @@ -257,42 +614,39 @@ class CfgVehicles { EGVAR(refuel,fuelCapacity) = 3700; EGVAR(fastroping,enabled) = 0; - // TODO: stringtables class UserActions { - class openDoor_L { - displayNameDefault = "Open left Door"; - displayName = "Open left Door"; - position = ""; - radius = 2.7; - onlyForPlayer = 1; - condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])}); - statement = "this animateDoor ['door_2_1_source',1]"; - }; - - class openDoor_R: openDoor_L { - displayNameDefault = "Open right Door"; - displayName = "Open right Door"; - condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])}); - statement = "this animateDoor ['door_2_2_source',1]"; - }; - - class closeDoor_L { - displayNameDefault = "Close left Door"; - displayName = "Close left Door"; - position = ""; - radius = 2.7; - onlyForPlayer = 1; - condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])}); - statement = "this animateDoor ['door_2_1_source',0]"; - }; - - class closeDoor_R: closeDoor_L { - displayNameDefault = "Close right Door"; - displayName = "Close right Door"; - condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QUOTE(QEGVAR(fastroping,doorsLocked)),false)])}); - statement = "this animateDoor ['door_2_2_source',0]"; - }; + class openDoor_L { + displayNameDefault = "$STR_a3_cfgvehicles_useractions_openldoor0"; + displayName = "$STR_a3_cfgvehicles_useractions_openldoor0"; + position = ""; + radius = 2.7; + onlyForPlayer = 1; + condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])}); + statement = "this animateDoor ['door_2_1_source',1]"; }; + class openDoor_R: openDoor_L { + displayNameDefault = "$STR_a3_cfgvehicles_useractions_openrdoor0"; + displayName = "$STR_a3_cfgvehicles_useractions_openrdoor0"; + condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' < 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])}); + statement = "this animateDoor ['door_2_2_source',1]"; + }; + + class closeDoor_L { + displayNameDefault = "$STR_a3_cfgvehicles_useractions_closeldoor0"; + displayName = "$STR_a3_cfgvehicles_useractions_closeldoor0"; + position = ""; + radius = 2.7; + onlyForPlayer = 1; + condition = QUOTE((this animationSourcePhase 'door_2_1_unhide' > 0.5) && (this doorPhase 'door_2_1_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])}); + statement = "this animateDoor ['door_2_1_source',0]"; + }; + class closeDoor_R: closeDoor_L { + displayNameDefault = "$STR_a3_cfgvehicles_useractions_closerdoor0"; + displayName = "$STR_a3_cfgvehicles_useractions_closerdoor0"; + condition = QUOTE((this animationSourcePhase 'door_2_2_unhide' > 0.5) && (this doorPhase 'door_2_2_source' > 0.5) && {alive this} && {!(this getVariable [ARR_2(QQEGVAR(fastroping,doorsLocked),false)])}); + statement = "this animateDoor ['door_2_2_source',0]"; + }; + }; }; class gm_bo105p1m_vbh_base; class gm_bo105p1m_vbh_swooper_base: gm_bo105p1m_vbh_base { diff --git a/addons/compat_gm/compat_gm_refuel/CfgVehicles.hpp b/addons/compat_gm/compat_gm_refuel/CfgVehicles.hpp new file mode 100644 index 0000000000..aa51d46979 --- /dev/null +++ b/addons/compat_gm/compat_gm_refuel/CfgVehicles.hpp @@ -0,0 +1,336 @@ +class CfgVehicles { + class gm_typ2_base; + class gm_typ251_base: gm_typ2_base { + class EGVAR(interaction,anims) { + class canister_01_unhide { + phase = 0; + positions[] = {{-0.55, -0.17, 0.4}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class canister_02_unhide { + phase = 0; + positions[] = {{-0.55, -0.65, 0.4}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + class gm_typ253_base: gm_typ2_base { + class EGVAR(interaction,anims) { + class canister_01_unhide { + phase = 0; + positions[] = {{-0.55, -0.19, 0.4}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class canister_02_unhide { + phase = 0; + positions[] = {{-0.55, -0.68, 0.4}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + + class gm_wheeled_truck_base; + class gm_ural375d_base: gm_wheeled_truck_base { + class EGVAR(interaction,anims) { + class fuelcan_1_1_unhide { + phase = 0; + positions[] = {{-0.95, 3.15, -0.45}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class fuelcan_1_2_unhide { + phase = 0; + positions[] = {{0.9, 3.15, -0.45}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + class gm_ural375d_mlrs_base: gm_ural375d_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class fuelcan_1_1_unhide: fuelcan_1_1_unhide { + positions[] = {{-0.95, 3.35, -0.55}}; + }; + class fuelcan_1_2_unhide: fuelcan_1_2_unhide { + positions[] = {{0.9, 3.35, -0.55}}; + }; + }; + }; + class gm_ural375d_medic_base: gm_ural375d_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class fuelcan_1_1_unhide: fuelcan_1_1_unhide { + positions[] = {{-0.95, 3.35, -0.45}}; + }; + class fuelcan_1_2_unhide: fuelcan_1_2_unhide { + positions[] = {{0.9, 3.35, -0.45}}; + }; + }; + }; + + class gm_ural4320_base: gm_wheeled_truck_base { + class EGVAR(interaction,anims) { + class fuelcan_1_1_unhide { + phase = 0; + positions[] = {{-0.9, 3.1, -0.4}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class fuelcan_1_2_unhide { + phase = 0; + positions[] = {{0.9, 3.1, -0.4}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + class gm_ural4320_repair_base: gm_ural4320_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class fuelcan_1_1_unhide: fuelcan_1_1_unhide { + positions[] = {{-0.9, 3.25, -0.4}}; + }; + class fuelcan_1_2_unhide: fuelcan_1_2_unhide { + positions[] = {{0.9, 3.25, -0.4}}; + }; + }; + }; + class gm_ural44202_base: gm_ural4320_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class fuelcan_1_1_unhide: fuelcan_1_1_unhide { + positions[] = {{-0.9, 3, -0.4}}; + }; + class fuelcan_1_2_unhide: fuelcan_1_2_unhide { + positions[] = {{0.9, 3, -0.4}}; + }; + }; + }; + + class gm_wheeled_APC_base; + class gm_brdm2_base: gm_wheeled_APC_base { + class EGVAR(interaction,anims) { + class FuelCanister_01_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_01', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_02_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_02', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_03_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_03', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + class gm_brdm2um_base: gm_brdm2_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class FuelCanister_01_unhide: FuelCanister_01_unhide { + positions[] = {{0.87, -3, -1.2}}; + }; + class FuelCanister_02_unhide: FuelCanister_02_unhide { + positions[] = {{-0.87, -3, -1.2}}; + }; + class FuelCanister_03_unhide: FuelCanister_03_unhide { + positions[] = {{-0.4, -1.85, -0.5}}; + }; + }; + }; + + class gm_btr60_base: gm_wheeled_APC_base { + class EGVAR(interaction,anims) { + class FuelCanister_01_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_01', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_02_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_02', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_03_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_03', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_04_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_04', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_05_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_05', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_06_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['fuelcanister_06', 'FireGeometry', 'AveragePoint']"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + class gm_btr60pa_base: gm_btr60_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class FuelCanister_05_unhide: FuelCanister_05_unhide { + items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"}; + }; + class FuelCanister_06_unhide: FuelCanister_06_unhide { + items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"}; + }; + }; + }; + class gm_btr60pb_base: gm_btr60_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class FuelCanister_03_unhide: FuelCanister_03_unhide { + items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"}; + }; + class FuelCanister_04_unhide: FuelCanister_04_unhide { + items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"}; + }; + }; + }; + class gm_btr60pu12_base: gm_btr60_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class FuelCanister_03_unhide: FuelCanister_03_unhide { + items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"}; + }; + class FuelCanister_04_unhide: FuelCanister_04_unhide { + items[] = {"Land_CanisterFuel_F", "Land_CanisterFuel_F"}; + }; + }; + }; + + class gm_bmp1_base; + class gm_bmp1sp2_base: gm_bmp1_base { + class EGVAR(interaction,anims) { + class FuelCanister_01_unhide { + phase = 0; + positions[] = {{-1.2, -2.52, -1.2}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_02_unhide { + phase = 0; + positions[] = {{1.2, -2.52, -1.2}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + + class gm_zsu234_base; + class gm_zsu234v1_base: gm_zsu234_base { + class EGVAR(interaction,anims) { + class FuelCanister_01_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, 0.2, 0] vectorAdd ([[-0.85, -2.2, -0.9], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_02_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, 0.2, 0] vectorAdd ([[0.7, -2.25, -0.85], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_03_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, 0.2, 0] vectorAdd ([[0.92, -2.25, -0.85], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + + class gm_tracked_Tank_base; + class gm_pt76_base: gm_tracked_Tank_base { + class EGVAR(interaction,anims) { + class FuelTank_01_unhide { + phase = 0; + positions[] = {{-1, -2.85, -1}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelTank_02_unhide { + phase = 0; + positions[] = {{1, -2.85, -1}}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; + + class gm_Leopard1a0_base; + class gm_Leopard1a1_base: gm_Leopard1a0_base { + class EGVAR(interaction,anims) { + class FuelCanister_01_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, -0.6, 0] vectorAdd ([[0.25, -1.9, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + distance = 2.5; + }; + class FuelCanister_02_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, -0.6, 0] vectorAdd ([[-0.8, -1.65, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + class FuelCanister_03_unhide { + phase = 0; + // Rotate interactions with turret rotation + positions[] = {"[0, -0.6, 0] vectorAdd ([[0.8, -1.8, -0.55], [0, 0, 1], deg (_target animationPhase 'mainturret_trav_anim')] call CBA_fnc_vectRotate3D)"}; + items[] = {"Land_CanisterFuel_F"}; + name = ECSTRING(refuel,TakeFuelCanister); + text = ECSTRING(refuel,TakeFuelCanisterAction); + }; + }; + }; +}; diff --git a/addons/compat_gm/compat_gm_refuel/config.cpp b/addons/compat_gm/compat_gm_refuel/config.cpp index 05688eff70..6becabe70a 100644 --- a/addons/compat_gm/compat_gm_refuel/config.cpp +++ b/addons/compat_gm/compat_gm_refuel/config.cpp @@ -21,3 +21,4 @@ class CfgPatches { }; #include "CfgEventHandlers.hpp" +#include "CfgVehicles.hpp" diff --git a/addons/compat_gm/compat_gm_repair/CfgVehicles.hpp b/addons/compat_gm/compat_gm_repair/CfgVehicles.hpp new file mode 100644 index 0000000000..12f9253bba --- /dev/null +++ b/addons/compat_gm/compat_gm_repair/CfgVehicles.hpp @@ -0,0 +1,100 @@ +class CfgVehicles { + class gm_wheeled_car_base; + class gm_uaz469_base: gm_wheeled_car_base { + class EGVAR(interaction,anims) { + class spare_wheel_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['spare_wheel', 'FireGeometry', 'AveragePoint']"}; + items[] = {"ACE_Wheel"}; + name = ECSTRING(repair,RemoveWheel); + text = ECSTRING(repair,RemovingWheel); + }; + }; + }; + + class gm_wheeled_APC_base; + class gm_brdm2_base: gm_wheeled_APC_base { + class EGVAR(interaction,anims) { + class SpareWheel_01_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['sparewheel_01', 'FireGeometry', 'AveragePoint']"}; + items[] = {"ACE_Wheel"}; + name = ECSTRING(repair,RemoveWheel); + text = ECSTRING(repair,RemovingWheel); + distance = 2.5; + }; + class SpareWheel_02_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['sparewheel_02', 'FireGeometry', 'AveragePoint']"}; + items[] = {"ACE_Wheel"}; + name = ECSTRING(repair,RemoveWheel); + text = ECSTRING(repair,RemovingWheel); + }; + }; + }; + class gm_brdm2um_base: gm_brdm2_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class SpareWheel_01_unhide: SpareWheel_01_unhide { + positions[] = {{0.2, -0.7, -0.25}}; + distance = 2; + }; + class SpareWheel_02_unhide: SpareWheel_02_unhide { + positions[] = {{0, -1.6, -0.4}}; + }; + }; + }; + + class gm_btr60_base: gm_wheeled_APC_base { + class EGVAR(interaction,anims) { + class SpareWheel_01_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['sparewheel_01', 'FireGeometry', 'AveragePoint']"}; + items[] = {"ACE_Wheel"}; + name = ECSTRING(repair,RemoveWheel); + text = ECSTRING(repair,RemovingWheel); + distance = 3; + }; + class SpareWheel_02_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['sparewheel_02', 'FireGeometry', 'AveragePoint']"}; + items[] = {"ACE_Wheel"}; + name = ECSTRING(repair,RemoveWheel); + text = ECSTRING(repair,RemovingWheel); + }; + class SpareWheel_03_unhide { + phase = 0; + positions[] = {"_target selectionPosition ['sparewheel_03', 'FireGeometry', 'AveragePoint']"}; + items[] = {"ACE_Wheel"}; + name = ECSTRING(repair,RemoveWheel); + text = ECSTRING(repair,RemovingWheel); + }; + }; + }; + + class gm_bmp1_base; + class gm_bmp1sp2_base: gm_bmp1_base { + class EGVAR(interaction,anims) { + class spareTracks_1_1_unhide { + phase = 0; + positions[] = {"(_target selectionPosition ['door_1_1', 'FireGeometry', 'AveragePoint']) vectorAdd [0, 0, -0.15]"}; + items[] = {"ACE_Track"}; + name = ECSTRING(repair,RemoveTrack); + text = ECSTRING(repair,RemovingTrack); + }; + class spareTracks_1_2_unhide { + phase = 0; + positions[] = {"(_target selectionPosition ['door_1_2', 'FireGeometry', 'AveragePoint']) vectorAdd [0, 0, -0.15]"}; + items[] = {"ACE_Track"}; + name = ECSTRING(repair,RemoveTrack); + text = ECSTRING(repair,RemovingTrack); + }; + class spareTracks_2_1_unhide { + phase = 0; + positions[] = {{-1.1, -2.7, -1.3}, {1.1, -2.7, -1.3}}; + items[] = {"ACE_Track", "ACE_Track"}; + name = ECSTRING(repair,RemoveTrack); + text = ECSTRING(repair,RemovingTrack); + }; + }; + }; +}; diff --git a/addons/compat_gm/compat_gm_repair/config.cpp b/addons/compat_gm/compat_gm_repair/config.cpp new file mode 100644 index 0000000000..6fae9858b4 --- /dev/null +++ b/addons/compat_gm/compat_gm_repair/config.cpp @@ -0,0 +1,23 @@ +#include "script_component.hpp" + +class CfgPatches { + class SUBADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "gm_core", + "ace_repair" + }; + skipWhenMissingDependencies = 1; + author = ECSTRING(common,ACETeam); + authors[] = {"johnb43"}; + url = ECSTRING(main,URL); + VERSION_CONFIG; + + addonRootClass = QUOTE(ADDON); + }; +}; + +#include "CfgVehicles.hpp" diff --git a/addons/compat_gm/compat_gm_repair/script_component.hpp b/addons/compat_gm/compat_gm_repair/script_component.hpp new file mode 100644 index 0000000000..1af928486c --- /dev/null +++ b/addons/compat_gm/compat_gm_repair/script_component.hpp @@ -0,0 +1,3 @@ +#define SUBCOMPONENT repair +#define SUBCOMPONENT_BEAUTIFIED Repair +#include "..\script_component.hpp" diff --git a/addons/compat_gm/compat_gm_trenches/CfgVehicles.hpp b/addons/compat_gm/compat_gm_trenches/CfgVehicles.hpp new file mode 100644 index 0000000000..b5c32d8be1 --- /dev/null +++ b/addons/compat_gm/compat_gm_trenches/CfgVehicles.hpp @@ -0,0 +1,47 @@ +class CfgVehicles { + class gm_wheeled_truck_base; + class gm_ural375d_base: gm_wheeled_truck_base { + class EGVAR(interaction,anims) { + class tools_unhide { + phase = 0; + positions[] = {{0.9, 3.15, -0.5}}; + items[] = {"ACE_EntrenchingTool"}; + name = ECSTRING(trenches,EntrenchingToolName); + text = ECSTRING(trenches,EntrenchingToolName); + }; + }; + }; + class gm_ural375d_mlrs_base: gm_ural375d_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class tools_unhide: tools_unhide { + positions[] = {{0.9, 3.35, -0.65}}; + }; + }; + }; + class gm_ural375d_medic_base: gm_ural375d_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class tools_unhide: tools_unhide { + positions[] = {{0.9, 3.35, -0.5}}; + }; + }; + }; + + class gm_ural4320_base: gm_wheeled_truck_base { + class EGVAR(interaction,anims) { + class tools_unhide { + phase = 0; + positions[] = {{0.93, 2.7, -0.5}}; + items[] = {"ACE_EntrenchingTool"}; + name = ECSTRING(trenches,EntrenchingToolName); + text = ECSTRING(trenches,EntrenchingToolName); + }; + }; + }; + class gm_ural44202_base: gm_ural4320_base { + class EGVAR(interaction,anims): EGVAR(interaction,anims) { + class tools_unhide: tools_unhide { + positions[] = {{0.9, 2.6, -0.5}}; + }; + }; + }; +}; diff --git a/addons/compat_gm/compat_gm_trenches/config.cpp b/addons/compat_gm/compat_gm_trenches/config.cpp new file mode 100644 index 0000000000..13c4dd0816 --- /dev/null +++ b/addons/compat_gm/compat_gm_trenches/config.cpp @@ -0,0 +1,23 @@ +#include "script_component.hpp" + +class CfgPatches { + class SUBADDON { + name = COMPONENT_NAME; + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "gm_core", + "ace_trenches" + }; + skipWhenMissingDependencies = 1; + author = ECSTRING(common,ACETeam); + authors[] = {"johnb43"}; + url = ECSTRING(main,URL); + VERSION_CONFIG; + + addonRootClass = QUOTE(ADDON); + }; +}; + +#include "CfgVehicles.hpp" diff --git a/addons/compat_gm/compat_gm_trenches/script_component.hpp b/addons/compat_gm/compat_gm_trenches/script_component.hpp new file mode 100644 index 0000000000..10b90eb71e --- /dev/null +++ b/addons/compat_gm/compat_gm_trenches/script_component.hpp @@ -0,0 +1,3 @@ +#define SUBCOMPONENT trenches +#define SUBCOMPONENT_BEAUTIFIED Trenches +#include "..\script_component.hpp"