ACE3/addons/explosives/CfgVehicles.hpp

438 lines
18 KiB
C++
Raw Normal View History

class CBA_Extended_EventHandlers;
class CfgVehicles {
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class ACE_Explosives {
2015-06-06 02:02:24 +00:00
displayName = CSTRING(Menu);
condition = QUOTE(!(_player getVariable [ARR_2(QQGVAR(plantingExplosive),false)]));
statement = "";
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
showDisabled = 1;
2016-04-08 18:34:50 +00:00
icon = QPATHTOF(UI\Explosives_Menu_ca.paa);
insertChildren = QUOTE(_player call FUNC(addTransmitterActions));
class ACE_Place {
2015-06-06 02:02:24 +00:00
displayName = CSTRING(Place);
statement = "";
condition = QUOTE(true);
exceptions[] = {"isNotSwimming"};
2016-04-08 18:34:50 +00:00
icon = QPATHTOF(UI\Place_Explosive_ca.paa);
insertChildren = QUOTE(_player call FUNC(addExplosiveActions));
};
class ACE_Cellphone {
2015-06-06 02:02:24 +00:00
displayName = CSTRING(cellphone_displayName);
condition = QUOTE([ARR_2(_player,'ACE_Cellphone')] call EFUNC(common,hasItem));
statement = QUOTE(closeDialog 0; createDialog 'Rsc_ACE_PhoneInterface');
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
showDisabled = 0;
2016-04-08 18:34:50 +00:00
icon = QPATHTOF(Data\UI\Cellphone_UI.paa);
};
};
};
};
class Items_base_F;
class ACE_DefuseObject: Items_base_F {
class EventHandlers {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
};
author = ECSTRING(common,aceteam);
_generalMacro = "ACE_DefuseObject";
displayName = "ACE Defuse Helper";
model = "\A3\Weapons_f\dummyweapon.p3d";
scope = 1;
2016-06-06 22:51:06 +00:00
class ACE_Actions {
2016-06-06 22:51:06 +00:00
class ACE_Defuse {
distance = 1;
2016-06-06 22:51:06 +00:00
displayName = CSTRING(Defuse);
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canDefuse));
statement = QUOTE([ARR_2(_player,_target)] call FUNC(startDefuse));
2016-06-06 22:51:06 +00:00
exceptions[] = {"isNotSwimming"};
icon = QPATHTOF(UI\Defuse_ca.paa);
};
};
};
class ACE_DefuseObject_Large: ACE_DefuseObject {
class ACE_Actions: ACE_Actions {
class ACE_Defuse: ACE_Defuse {
distance = 2;
};
};
};
2016-06-06 22:51:06 +00:00
class ACE_Explosives_Place: Items_base_F {
class EventHandlers {
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
};
author = ECSTRING(common,aceteam);
_generalMacro = "ACE_Explosives_Place";
displayName = "Multi-meter";
mapSize = 0.2;
icon = "iconObject_1x2";
model = "\A3\Structures_F\Items\Tools\MultiMeter_F.p3d";
scope = 1;
vehicleClass = "Cargo";
class ACE_Actions {
class ACE_MainActions {
displayName = ECSTRING(interaction,MainAction);
selection = "";
distance = 1.5;
condition = "true";
class ACE_SetTrigger {
selection = "";
displayName = CSTRING(TriggerMenu);
condition = "true";
statement = "";
insertChildren = QUOTE([ARR_3(_target getVariable QQGVAR(class),_target,_player)] call FUNC(addTriggerActions));
showDisabled = 0;
exceptions[] = {"isNotSwimming"};
2016-04-08 18:34:50 +00:00
icon = QPATHTOF(UI\Explosives_Menu_ca.paa);
};
class ACE_PickUp {
selection = "";
displayName = CSTRING(Pickup);
condition = "true";
statement = QUOTE([ARR_2(_player,_target getVariable QQGVAR(class))] call EFUNC(common,addToInventory); deleteVehicle _target);
showDisabled = 0;
exceptions[] = {"isNotSwimming"};
icon = "\A3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_takemine_ca.paa";
};
};
};
};
class ACE_Explosives_Place_DemoCharge: ACE_Explosives_Place {
displayName = "$STR_A3_cfgMagazines_DemoCharge0";
model = "\A3\Weapons_F\explosives\c4_charge_small_d";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.07, 0, 0.055]";
};
};
};
class ACE_Explosives_Place_APERSBoundingMine: ACE_Explosives_Place {
displayName = "$STR_A3_cfgMagazines_BouncingMineRangeMagazine0";
model = "\A3\Weapons_F\explosives\mine_AP_bouncing";
};
class ACE_Explosives_Place_APERSMine: ACE_Explosives_Place {
displayName = "$STR_A3_cfgMagazines_ClassicMineRangeMagazine0";
model = "\A3\Weapons_F\explosives\mine_ap";
};
class ACE_Explosives_Place_APERSTripwireMine: ACE_Explosives_Place {
displayName = "$STR_A3_cfgMagazines_ClassicMineWireMagazine0";
model = "\A3\Weapons_F\explosives\mine_AP_tripwire";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[1.415, 0, 0.12]";
};
};
};
class ACE_Explosives_Place_ATMine: ACE_Explosives_Place {
displayName = "$STR_A3_CfgMagazines_Mine0";
model = "\A3\Weapons_f\Explosives\mine_at";
};
class ACE_Explosives_Place_Claymore: ACE_Explosives_Place {
displayName = "$STR_A3_cfgMagazines_DirectionalMineRemoteMagazine0";
model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.038]";
};
};
};
class ACE_Explosives_Place_SatchelCharge: ACE_Explosives_Place {
displayName = "$STR_A3_cfgMagazines_PipeBomb0";
model = "\A3\Weapons_F\Explosives\satchel";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[-0.1, -0.1, 0.05]";
};
};
};
// Orange DLC:
class ACE_Explosives_Place_APERSMineDispenser: ACE_Explosives_Place {
displayName = "$STR_A3_CfgMagazines_APERSMineDispenser_Mag0";
model = "\A3\Weapons_F_Orange\Explosives\APERSmineDispenser";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0.0, -0.05, 0.15]";
};
};
};
class ACE_Explosives_Place_TrainingMine: ACE_Explosives_Place {
displayName = "$STR_A3_CfgMagazines_TrainingMine_Mag0";
model = "\A3\Weapons_F_Orange\Explosives\TrainingMine_F";
class ACE_Actions: ACE_Actions {
class ACE_MainActions: ACE_MainActions {
position = "[0, 0, 0.15]";
};
};
};
class ACE_Explosives_Place_SLAM: ACE_Explosives_Place {
displayName = "$STR_A3_cfgMagazines_DirectionalMineRangeMagazine0";
model = "\A3\Weapons_F\Explosives\mine_SLAM_directional";
};
// IEDs
class ACE_Explosives_Place_IEDUrbanBig: ACE_Explosives_Place {
displayName = "$STR_A3_CfgVehicles_IEDUrbanBig_F";
model = "\A3\Weapons_F\Explosives\IED_urban_big";
};
class ACE_Explosives_Place_IEDLandBig: ACE_Explosives_Place {
displayName = "$STR_A3_CfgVehicles_IEDLandBig_F";
model = "\A3\Weapons_F\Explosives\IED_land_big";
};
class ACE_Explosives_Place_IEDUrbanSmall: ACE_Explosives_Place {
displayName = "$STR_A3_CfgVehicles_IEDUrbanSmall_F";
model = "\A3\Weapons_F\Explosives\IED_urban_small";
};
class ACE_Explosives_Place_IEDLandSmall: ACE_Explosives_Place {
displayName = "$STR_A3_CfgVehicles_IEDLandSmall_F";
model = "\A3\Weapons_F\Explosives\IED_land_small";
};
class NATO_Box_Base;
class EAST_Box_Base;
class IND_Box_Base;
class FIA_Box_Base_F;
class Box_NATO_Support_F;
class Box_NATO_AmmoOrd_F: NATO_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12);
};
};
class Box_East_AmmoOrd_F: EAST_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12);
};
};
class Box_IND_AmmoOrd_F: IND_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12);
MACRO_ADDITEM(ACE_Deadmanswitch,2);
MACRO_ADDITEM(ACE_Cellphone,3);
};
};
class Box_FIA_Ammo_F: FIA_Box_Base_F {
class TransportItems {
MACRO_ADDITEM(ACE_Clacker,2);
MACRO_ADDITEM(ACE_M26_Clacker,2);
MACRO_ADDITEM(ACE_DefusalKit,2);
MACRO_ADDITEM(ACE_Deadmanswitch,1);
MACRO_ADDITEM(ACE_Cellphone,2);
};
};
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12);
MACRO_ADDITEM(ACE_Deadmanswitch,6);
MACRO_ADDITEM(ACE_Cellphone,10);
};
};
class B_Kitbag_rgr;
class B_Kitbag_rgr_Exp: B_Kitbag_rgr {
class TransportItems {
class _xx_ToolKit { // xXToOlKiT420mLgXx
count = 0;
};
};
};
class B_Carryall_ocamo;
class B_Carryall_ocamo_Exp: B_Carryall_ocamo {
class TransportItems {
class _xx_ToolKit {
count = 0;
};
};
};
class B_Carryall_oucamo;
class B_Carryall_oucamo_Exp: B_Carryall_oucamo {
class TransportItems {
class _xx_ToolKit {
count = 0;
};
};
};
class B_Carryall_oli;
class G_Carryall_Exp: B_Carryall_oli {
class TransportItems {
class _xx_ToolKit {
count = 0;
};
};
};
class I_Carryall_oli_Exp: B_Carryall_oli {
class TransportItems {
class _xx_ToolKit {
count = 0;
};
};
};
#include "CfgModule.hpp"
// Add ACE_Clacker and ACE_DefusalKit to every explosive unit.
#define MACRO_ADDMINEKIT \
items[] = {"FirstAidKit","ACE_Clacker","ACE_DefusalKit"}; \
respawnitems[] = {"FirstAidKit","ACE_Clacker","ACE_DefusalKit"};
class B_Soldier_base_F; class B_soldier_exp_F: B_Soldier_base_F {MACRO_ADDMINEKIT};
class B_Soldier_03_f; class B_engineer_F: B_Soldier_03_f {MACRO_ADDMINEKIT};
class B_Soldier_diver_base_F; class B_diver_exp_F: B_Soldier_diver_base_F {MACRO_ADDMINEKIT};
class B_Soldier_recon_base; class B_recon_exp_F: B_Soldier_recon_base {MACRO_ADDMINEKIT};
class B_Soldier_02_f; class B_CTRG_soldier_engineer_exp_F: B_Soldier_02_f {MACRO_ADDMINEKIT};
class I_G_Soldier_base_F; class I_G_engineer_F: I_G_Soldier_base_F {MACRO_ADDMINEKIT};
class I_G_Soldier_exp_F: I_G_Soldier_base_F {MACRO_ADDMINEKIT};
class B_G_engineer_F: I_G_engineer_F {MACRO_ADDMINEKIT};
class O_G_engineer_F: I_G_engineer_F {MACRO_ADDMINEKIT};
class B_G_Soldier_exp_F: I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
class O_G_Soldier_exp_F: I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
class I_Soldier_02_F; class I_Soldier_exp_F: I_Soldier_02_F {MACRO_ADDMINEKIT};
class I_Soldier_base_F; class I_engineer_F: I_Soldier_base_F {MACRO_ADDMINEKIT};
class I_Soldier_diver_base_F; class I_diver_exp_F: I_Soldier_diver_base_F {MACRO_ADDMINEKIT};
class O_Soldier_base_F; class O_soldier_exp_F: O_Soldier_base_F {MACRO_ADDMINEKIT};
class O_engineer_F: O_Soldier_base_F {MACRO_ADDMINEKIT};
class O_Soldier_diver_base_F; class O_diver_exp_F: O_Soldier_diver_base_F {MACRO_ADDMINEKIT};
class O_Soldier_recon_base; class O_recon_exp_F: O_Soldier_recon_base {MACRO_ADDMINEKIT};
class O_Soldier_Urban_base; class O_soldierU_exp_F: O_Soldier_Urban_base {MACRO_ADDMINEKIT};
class O_engineer_U_F: O_Soldier_Urban_base {MACRO_ADDMINEKIT};
class B_Protagonist_VR_F: B_Soldier_base_F {MACRO_ADDMINEKIT};
class O_Protagonist_VR_F: O_Soldier_base_F {MACRO_ADDMINEKIT};
class I_Protagonist_VR_F: I_Soldier_base_F {MACRO_ADDMINEKIT};
class B_Soldier_F; class b_soldier_universal_f: B_Soldier_F {MACRO_ADDMINEKIT};
class B_G_Soldier_F; class b_g_soldier_universal_f: B_G_Soldier_F {MACRO_ADDMINEKIT};
class O_Soldier_F; class o_soldier_universal_f: O_Soldier_F {MACRO_ADDMINEKIT};
class O_G_Soldier_F; class o_g_soldier_universal_f: O_G_Soldier_F {MACRO_ADDMINEKIT};
class I_soldier_F; class i_soldier_universal_f: I_soldier_F {MACRO_ADDMINEKIT};
class I_G_Soldier_F; class i_g_soldier_universal_f: I_G_Soldier_F {MACRO_ADDMINEKIT};
class B_CTRG_Soldier_F; class B_CTRG_Soldier_Exp_tna_F: B_CTRG_Soldier_F {MACRO_ADDMINEKIT};
class O_V_Soldier_base_F; class O_V_Soldier_Exp_hex_F: O_V_Soldier_base_F {MACRO_ADDMINEKIT};
class O_V_Soldier_Exp_ghex_F: O_V_Soldier_Exp_hex_F {MACRO_ADDMINEKIT};
// Add ACE_Clacker to snipers and spotters for setting off Claymores
#define MACRO_ADDCLAYMOREKIT \
items[] = {"FirstAidKit","ACE_Clacker"}; \
respawnitems[] = {"FirstAidKit","ACE_Clacker"};
class B_Soldier_sniper_base_F;
class B_sniper_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class B_spotter_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class I_Soldier_sniper_base_F;
class I_Sniper_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class I_Spotter_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class O_Soldier_sniper_base_F;
class O_sniper_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class O_spotter_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class B_ghillie_base_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class O_ghillie_base_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class I_ghillie_base_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class O_T_Spotter_F: O_spotter_F {MACRO_ADDCLAYMOREKIT};
2016-01-13 00:03:50 +00:00
// Editor placed mines
class MineBase;
class SLAMDirectionalMine: MineBase {
displayName = CSTRING(Module_SLAMSideAttack_DisplayName);
};
class ACE_SLAMBottomMine: SLAMDirectionalMine {
author = ECSTRING(common,aceteam);
ammo = "ACE_SLAMDirectionalMine_Magnetic_Ammo";
displayName = CSTRING(Module_SLAMBottomAttack_DisplayName);
// TODO: Find a way to place the mine laying down instead of standing up
};
2016-08-13 09:29:01 +00:00
class APERSTripMine: MineBase {};
class ACE_FlareTripMine: APERSTripMine {
author = ECSTRING(common,aceteam);
ammo = "ACE_FlareTripMine_Wire_Ammo";
displayName = CSTRING(TripFlare_Name);
};
2016-01-14 23:25:02 +00:00
class IEDUrbanBig_F;
2016-01-13 00:03:50 +00:00
class ACE_IEDUrbanBig_Range: IEDUrbanBig_F {
author = ECSTRING(common,aceteam);
ammo = "ACE_IEDUrbanBig_Range_Ammo";
displayName = CSTRING(Module_IEDUrbanBig_Range_DisplayName);
};
2016-01-14 23:25:02 +00:00
class IEDLandBig_F;
2016-01-13 00:03:50 +00:00
class ACE_IEDLandBig_Range: IEDLandBig_F {
author = ECSTRING(common,aceteam);
ammo = "ACE_IEDLandBig_Range_Ammo";
displayName = CSTRING(Module_IEDLandBig_Range_DisplayName);
};
2016-01-14 23:25:02 +00:00
class IEDUrbanSmall_F;
2016-01-13 00:03:50 +00:00
class ACE_IEDUrbanSmall_Range: IEDUrbanSmall_F {
author = ECSTRING(common,aceteam);
ammo = "ACE_IEDUrbanSmall_Range_Ammo";
displayName = CSTRING(Module_IEDUrbanSmall_Range_DisplayName);
};
2016-01-14 23:25:02 +00:00
class IEDLandSmall_F;
2016-01-13 00:03:50 +00:00
class ACE_IEDLandSmall_Range: IEDLandSmall_F {
author = ECSTRING(common,aceteam);
ammo = "ACE_IEDLandSmall_Range_Ammo";
displayName = CSTRING(Module_IEDLandSmall_Range_DisplayName);
};
// Zeus placed mines
class ModuleMine_F;
class ModuleMine_SLAMDirectionalMine_F: ModuleMine_F {
displayName = CSTRING(Module_SLAMSideAttack_DisplayName);
};
class ACE_ModuleMine_SLAMBottomMine: ModuleMine_SLAMDirectionalMine_F {
author = ECSTRING(common,aceteam);
displayName = CSTRING(Module_SLAMBottomAttack_DisplayName);
explosive = "ACE_SLAMDirectionalMine_Magnetic_Ammo";
2016-01-13 21:39:14 +00:00
icon = "iconExplosiveGP";
};
class ModuleExplosive_IEDUrbanBig_F;
class ACE_ModuleExplosive_IEDUrbanBig_Range: ModuleExplosive_IEDUrbanBig_F {
2016-01-13 00:03:50 +00:00
author = ECSTRING(common,aceteam);
2016-01-13 21:39:14 +00:00
displayName = CSTRING(Module_IEDUrbanBig_Range_DisplayName);
explosive = "ACE_IEDUrbanBig_Range_Ammo";
};
class ModuleExplosive_IEDLandBig_F;
class ACE_ModuleExplosive_IEDLandBig_Range: ModuleExplosive_IEDLandBig_F {
2016-01-13 00:03:50 +00:00
author = ECSTRING(common,aceteam);
2016-01-13 21:39:14 +00:00
displayName = CSTRING(Module_IEDLandBig_Range_DisplayName);
explosive = "ACE_IEDLandBig_Range_Ammo";
};
class ModuleExplosive_IEDUrbanSmall_F;
class ACE_ModuleExplosive_IEDUrbanSmall_Range: ModuleExplosive_IEDUrbanSmall_F {
2016-01-13 00:03:50 +00:00
author = ECSTRING(common,aceteam);
displayName = CSTRING(Module_IEDUrbanSmall_Range_DisplayName);
explosive = "ACE_IEDUrbanSmall_Range_Ammo";
};
class ModuleExplosive_IEDLandSmall_F;
class ACE_ModuleExplosive_IEDLandSmall_Range: ModuleExplosive_IEDLandSmall_F {
2016-01-13 00:03:50 +00:00
author = ECSTRING(common,aceteam);
2016-01-13 21:39:14 +00:00
displayName = CSTRING(Module_IEDLandSmall_Range_DisplayName);
explosive = "ACE_IEDLandSmall_Range_Ammo";
};
};