//---Basic Definitions--- //I learned all of this from this weeb mod lol https://steamcommunity.com/sharedfiles/filedetails/?id=1620525773 #define StabilizedInAxesNone 0 #define StabilizedInAxisX 1 #define StabilizedInAxisY 2 #define StabilizedInAxesBoth 3 #define MACRO_AUTHOR "RD501" #define MACRO_AUTHOR_PPL "Namenai" #define MODNAME RD501 //---Basic Functions--- #define ADDON UNDERSCORE_CONCAT(MODNAME,COMPONENT) #define UNDERSCORE_CONCAT(var1,var2) ##var1##_##var2 // #define CONCAT(var1,var2) ##var1##var2 #define ADDON_NICE Research & Development 501 #define DANKAUTHORS RD501 //Adds the mod prefix to watever, used for classnames and such #define ADD_PREFIX(NAME)UNDERSCORE_CONCAT(MODNAME,NAME) #define concat_function(var) UNDERSCORE_CONCAT(ADDON,var) // #define quote_this(thing) #thing #define macro_single_quote(thing) '##thing##' #define macro_quote(thing) #thing #define macro_new_config_prop(name) MODNAME##_##name //Faction names,classes,and catagories #define macro_republic_faction MODNAME##_Republic_Faction #define macro_rebel_faction MODNAME##_Rebel_Faction #define macro_resistance_faction MODNAME##_Resistance_Faction #define macro_cis_faction MODNAME##_CIS_Faction #define macro_empire_faction MODNAME##_Empire_Faction #define macro_faction(name) MODNAME_##name##_Faction #define macro_first_order_faction MODNAME##_First_Order #define macro_ind_faction MODNAME##_Independent_Faction #define macro_civ_faction MODNAME##_Civ_Faction #define macro_editor_cat(name) MODNAME##_Editor_Category_##name #define macro_editor_cat_air(name) MODNAME##_Editor_Category_Air_##name #define macro_editor_vehicle_type(name) MODNAME##_Vehicle_Class_##name #define macro_editor_vehicle_type_air(name) MODNAME##_Air_Vehicle_Class_##name //---Functions--- #define macro_mod_script_path RD501_Main\functions #define post_init_fnc(name)\ class name\ {\ postInit = 1;\ file = function_path(name) \ }; #define normal_fnc(name)\ class name\ {\ file = function_path(name) \ }; #define function_path(scriptname) quote_this(ADDON\scripts\scriptname.sqf) #define hud_changer_interaction_icons MODNAME##_Main\textures\interaction_Icons #define macro_fnc_name(title) MODNAME##_fnc_##title #define macro_grp_fnc_name(grp,title) MODNAME##_##grp##_fnc_##title #define macro_preprocess_fnc(file)\ call compileFinal preprocessFileLineNumbers 'COMPONENT##\##file' //---Patches--- #define macro_patch_name(component) MODNAME##_patch_##component #define macro_A3_patch macro_quote(A3_Data_F_Tank_Loadorder) #define macro_root_req macro_quote(macro_patch_name(main)) #define macro_lvl2_req macro_quote(macro_patch_name(weapons)), macro_quote(macro_patch_name(jumppack)), macro_quote(macro_patch_name(helmets)), macro_quote(macro_patch_name(vehicle_weapons)) #define macro_lvl3_req macro_quote(macro_patch_name(units)), macro_quote(macro_patch_name(vehicles)), macro_quote(macro_patch_name(zeus)) #define macro_lvl1_req macro_quote(macro_patch_name(particle_effects)), macro_quote(RD501_patch_VenatorMK2), macro_quote(macro_patch_name(emp)) #define macro_lvl4_req macro_quote(macro_patch_name(droids_config)), macro_quote(macro_patch_name(laat_variants)) #define macro_lvl5_req macro_quote(macro_patch_name(legacy_classnames)) #define macro_end_patches macro_lvl5_req //---Weapons, Mags, and Ammo #define macro_scope_magnification(zoom) 0.25/zoom #define macro_new_scope(scopename) macro_modname##_weapon_scope_##scopename #define macro_new_weapon(family,name) MODNAME##_##family##_##name #define macro_new_weapon_nofam(name) MODNAME##_##name #define macro_new_ammo(name) MODNAME##_##name##_ammo #define macro_new_mag(name,count) MODNAME##_##name##_x##count##_mag #define macro_new_magwell(name) MODNAME##_##name##_magwell #define macro_new_magwell_array(name) MODNAME##_##name##_magwell[] #define macro_no_muzzle_impulse muzzleImpulseFactor[] = {0.00, 0.00}; #define macro_new_recoil(name) MODNAME##_##name##_recoil //---Vehicles--- #define macro_basic_air_weapons "Laserdesignator_pilotCamera","CMFlareLauncher" #define macro_basic_air_mags "Laserbatteries","300Rnd_CMFlare_Chaff_Magazine","300Rnd_CMFlare_Chaff_Magazine" #define macro_new_vehicle(group,name) MODNAME##_##group##_##name //----uniforms,units,vests //wat we see in arsenal,weapon #define macro_new_uniform_class(side,name) MODNAME##_##side##_uniform_##name //vests #define macro_new_vest_class(side,name) MODNAME##_##side##_vest_##name //actualyt skin of uniforms,vehicle #define macro_new_uniform_skin_class(side,name) MODNAME##_##side##_uniform_skin_##name //wat we see in zeus,vehicle #define macro_new_unit_class(side,name) MODNAME##_##side##_unit_##name //backpak #define macro_new_backpack_class(side,name)MODNAME##_##side##_##name##_backpack //compositions #define macro_new_composition(side,name) MODNAME##_##side##_composition_##name //backpack presets #define macro_b1_at_backpack_inv \ class _xx_MAAWS_HE \ {\ magazine = "MRAWS_HE_F";\ count = 3;\ };\ class _xx_MAAWS_HEAT\ {\ magazine = "MRAWS_HEAT_F";\ count = 2;\ }; #define macro_b1_aa_backpack_inv \ class _xx_Titan_AA\ {\ magazine = "Titan_AA";\ count = 6;\ }; //---Ordanance--- #define macro_new_ordnance(name) MODNAME##_Ordnance_##name #define macro_new_ordnance_ammo(name) MODNAME##_Ordnance_Ammo_##name //---helmets #define macro_custom_helmet_textures \RD501_Helmets\_textures #define macro_new_helmet(group,name) MODNAME##_##group##_helmet_##name #define macro_new_helmet_jlts(group,name) MODNAME##_##group##_helmet_##name #define macro_clone_helmet_hitpoints\ class HitpointsProtectionInfo\ {\ class Head\ {\ hitpointName = "HitHead";\ armor = 50;\ passThrough = 0.6;\ };\ }; #define macro_clone_other_armor_values\ explosionShielding = 2.2;\ minimalHit = 0.01;\ passThrough = 0.01; #define macro_ace_hearing_helmet_setting\ ace_hearing_protection = 0.85; \ ace_hearing_lowerVolume = 0.6; #define macro_rebreather_armor_stuff\ containerClass = "Supply100";\ mass = 20;\ vestType = "Rebreather"; #define macro_clone_armor_hitpoints \ class HitpointsProtectionInfo\ {\ class Neck\ {\ hitpointName = "HitNeck";\ armor = 8;\ passThrough = 0.6;\ };\ class Arms\ {\ hitpointName = "HitArms";\ armor = 16;\ passThrough = 0.6;\ };\ class Chest\ {\ hitpointName = "HitChest";\ armor = 32;\ passThrough = 0.6;\ };\ class Diaphragm\ {\ hitpointName = "HitDiaphragm";\ armor = 32;\ passThrough = 0.6;\ };\ class Abdomen\ {\ hitpointName = "HitAbdomen";\ armor = 16;\ passThrough = 0.6;\ };\ class Pelvis\ {\ hitpointName = "HitPelvis";\ armor = 16;\ passThrough = 0.6;\ };\ class Body\ {\ hitpointName = "HitBody";\ passThrough = 0.6;\ };\ }; //---textures #define macro_unit_skin_textures RD501_Units\textures #define macro_vehicle_textures RD501_Vehicles\textures #define macro_b1_textures MRC\JLTS\characters\DroidArmor\data //---XEH prep--- #define macro_prep_xeh(SCRIPT,name)\ [macro_quote(macro_mod_script_path\SCRIPT),macro_quote(macro_fnc_name(name))] call CBA_fnc_compileFunction; //---particle efffects--- #define macro_new_cloudlet(name) MODNAME##_cloudlet_##name #define macro_new_complex_effect(name) MODNAME##_particle_effect_##name #define macro_new_light(name) MODNAME##_light_##name //---NVG---- #define macro_thermal_nvg_default \ thermalMode[] = {8};