ACE3/TO_MERGE/agm/Explosives/config.cpp

301 lines
9.7 KiB
C++
Raw Normal View History

class CfgPatches {
class AGM_Explosives {
units[] = {};
weapons[] = {"AGM_Clacker", "AGM_DefusalKit", "AGM_M26_Clacker", "AGM_DeadManSwitch"};
requiredVersion = 0.60;
requiredAddons[] = {AGM_Core, AGM_Interaction};
version = "0.95";
versionStr = "0.95";
versionAr[] = {0,95,0};
author[] = {"Garth 'L-H' de Wet"};
authorUrl = "https://github.com/corruptedheart/";
};
};
class CfgFunctions {
class AGM_Explosives {
class Explosives {
file="AGM_Explosives\functions";
class AddClacker;
class CanDefuse;
class DefuseExplosive;
class DetonateExplosive;
class HandleScrollWheel;
class hasExplosives;
class hasPlacedExplosives;
class getDetonators;
class getPlacedExplosives;
class initialise{postInit=1;};
//class JammerInit;
class openDetonateUI;
class openPlaceUI;
class openTransmitterUI;
class openTimerSetUI;
class openTriggerSelectionUI;
class Place_Approve;
class Place_Cancel;
class PlaceExplosive;
class SelectTrigger;
class SetupExplosive;
class SetPos;
class StartDefuse;
class StartTimer;
class TriggerType;
};
};
};
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
name = #ITEM; \
count = COUNT; \
};
#define MACRO_DETONATEACTION class AGM_SelfActions { \
class AGM_Explosives { \
displayName = $STR_AGM_Explosives_Menu;\
condition = "true";\
statement = "";\
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
showDisabled = 1;\
priority = 4;\
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; \
subMenu[] = {"AGM_Explosives", 1};\
hotkey = "X";\
class AGM_Detonate {\
displayName = $STR_AGM_Explosives_Detonate;\
condition = "[_player] call AGM_Explosives_fnc_hasPlacedExplosives and {count ([_player] call AGM_Explosives_fnc_getDetonators) > 0}";\
statement = "[_player] call AGM_Explosives_fnc_openTransmitterUI;";\
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; \
showDisabled = 1;\
priority = 2;\
hotkey = "T";\
};\
};\
};
class CfgVehicles {
class Man;
class CAManBase: Man {
class AGM_SelfActions {
class AGM_Explosives {
displayName = $STR_AGM_Explosives_Menu;
condition = "!(_player getVariable ['AGM_PlantingExplosive', false])";
statement = "";
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
showDisabled = 1;
priority = 4;
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa";
subMenu[] = {"AGM_Explosives", 1};
hotkey = "X";
//Sub-menu items
class AGM_Detonate {
displayName = $STR_AGM_Explosives_Detonate;
condition = "[_player] call AGM_Explosives_fnc_hasPlacedExplosives and {count ([_player] call AGM_Explosives_fnc_getDetonators) > 0}";
statement = "[_player] call AGM_Explosives_fnc_openTransmitterUI;";
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
showDisabled = 1;
icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa";
priority = 2;
hotkey = "T";
};
class AGM_Place {
displayName = $STR_AGM_Explosives_Place;
condition = "(vehicle _player == _player) and {[_player] call AGM_Explosives_fnc_hasExplosives}";
statement = "[_player] call AGM_Explosives_fnc_openPlaceUI;";
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
showDisabled = 1;
icon = "AGM_Explosives\UI\Place_Explosive_ca.paa";
priority = 1;
hotkey = "P";
};
class AGM_Defuse {
displayName = $STR_AGM_Explosives_Defuse;
condition = "[_player] call AGM_Explosives_fnc_CanDefuse";
statement = "[_player, AGM_Interaction_Target] call AGM_Explosives_fnc_StartDefuse;";
exceptions[] = {"AGM_Interaction_isNotSwimming"}; \
showDisabled = 0;
icon = "AGM_Explosives\UI\defuse_ca.paa";
priority = 0.8;
hotkey = "F";
};
};
};
};
#include "CfgVehicles.hpp"
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(AGM_Clacker,12)
MACRO_ADDITEM(AGM_M26_Clacker,6)
MACRO_ADDITEM(AGM_DefusalKit,12)
};
};
class Box_East_AmmoOrd_F: EAST_Box_Base {
class TransportItems {
MACRO_ADDITEM(AGM_Clacker,12)
MACRO_ADDITEM(AGM_M26_Clacker,6)
MACRO_ADDITEM(AGM_DefusalKit,12)
};
};
class Box_IND_AmmoOrd_F: IND_Box_Base {
class TransportItems {
MACRO_ADDITEM(AGM_Clacker,12)
MACRO_ADDITEM(AGM_M26_Clacker,6)
MACRO_ADDITEM(AGM_DefusalKit,12)
MACRO_ADDITEM(AGM_Deadmanswitch,2)
};
};
class Box_FIA_Ammo_F: FIA_Box_Base_F {
class TransportItems {
MACRO_ADDITEM(AGM_Clacker,2)
MACRO_ADDITEM(AGM_M26_Clacker,2)
MACRO_ADDITEM(AGM_DefusalKit,2)
MACRO_ADDITEM(AGM_Deadmanswitch,1)
};
};
class AGM_Box_Misc: Box_NATO_Support_F {
class TransportItems {
MACRO_ADDITEM(AGM_Clacker,12)
MACRO_ADDITEM(AGM_M26_Clacker,6)
MACRO_ADDITEM(AGM_DefusalKit,12)
MACRO_ADDITEM(AGM_Deadmanswitch,6)
};
};
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 "Module.hpp"
// Add AGM_Clacker and AGM_DefusalKit to every explosive unit.
#define MACRO_ADDMINEKIT \
items[] = {"FirstAidKit", "AGM_Clacker", "AGM_DefusalKit"}; \
respawnitems[] = {"FirstAidKit", "AGM_Clacker", "AGM_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_CTRG_soldier_engineer_exp_F:B_Soldier_base_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};
// Add AGM_Clacker to snipers and spotters for setting off Claymores
#define MACRO_ADDCLAYMOREKIT \
items[] = {"FirstAidKit","AGM_Clacker"}; \
respawnitems[] = {"FirstAidKit","AGM_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};
};
#include "CfgAmmo.hpp"
#include "CfgMagazines.hpp"
#include "CfgWeapons.hpp"
#include "ExplosivesUI.hpp"
class CfgActions {
class None;
class Deactivate:None {
show = 0;
};
class DeactivateMine:None {
show = 0;
};
};
class AGM_Parameters_Boolean {
// Boolean Parameters (0/1)
AGM_Explosives_RequireSpecialist = 0;
AGM_Explosives_PunishNonSpecialists = 1;
};