This commit is the equivalent of a atomic bomb
This commit is contained in:
82
braf_weapons_core/9mm_M973/data/1911_M973.rvmat
Normal file
82
braf_weapons_core/9mm_M973/data/1911_M973.rvmat
Normal file
@@ -0,0 +1,82 @@
|
||||
class StageTI
|
||||
{
|
||||
texture="a3\weapons_f_beta\pistols\acpc2\data\acpc2_ti_ca.paa";
|
||||
};
|
||||
ambient[]={1,1,1,1};
|
||||
diffuse[]={1,1,1,1};
|
||||
forcedDiffuse[]={0,0,0,0};
|
||||
emmisive[]={0,0,0,1};
|
||||
specular[]={0.30000001,0.30000001,0.30000001,1};
|
||||
specularPower=90;
|
||||
PixelShaderID="Super";
|
||||
VertexShaderID="Super";
|
||||
class Stage1
|
||||
{
|
||||
texture="braf\braf_weapons_core\9mm_M973\data\1911_M973_nohq.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage2
|
||||
{
|
||||
texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={10,0,0};
|
||||
up[]={0,10,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage3
|
||||
{
|
||||
texture="#(argb,8,8,3)color(0.1,0.1,0.1,0,MC)";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage4
|
||||
{
|
||||
texture="braf\braf_weapons_core\9mm_M973\data\1911_M973_as.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage5
|
||||
{
|
||||
texture="braf\braf_weapons_core\9mm_M973\data\1911_M973_smdi.paa";
|
||||
uvSource="tex";
|
||||
class uvTransform
|
||||
{
|
||||
aside[]={1,0,0};
|
||||
up[]={0,1,0};
|
||||
dir[]={0,0,0};
|
||||
pos[]={0,0,0};
|
||||
};
|
||||
};
|
||||
class Stage6
|
||||
{
|
||||
texture="#(ai,32,128,1)fresnel(5.8,0.3)";
|
||||
uvSource="none";
|
||||
};
|
||||
class Stage7
|
||||
{
|
||||
texture="a3\data_f\env_land_co.paa";
|
||||
uvSource="none";
|
||||
};
|
||||
BIN
braf_weapons_core/9mm_M973/data/1911_M973_as.paa
LFS
Normal file
BIN
braf_weapons_core/9mm_M973/data/1911_M973_as.paa
LFS
Normal file
Binary file not shown.
BIN
braf_weapons_core/9mm_M973/data/1911_M973_co.paa
LFS
Normal file
BIN
braf_weapons_core/9mm_M973/data/1911_M973_co.paa
LFS
Normal file
Binary file not shown.
BIN
braf_weapons_core/9mm_M973/data/1911_M973_nohq.paa
LFS
Normal file
BIN
braf_weapons_core/9mm_M973/data/1911_M973_nohq.paa
LFS
Normal file
Binary file not shown.
BIN
braf_weapons_core/9mm_M973/data/1911_M973_smdi.paa
LFS
Normal file
BIN
braf_weapons_core/9mm_M973/data/1911_M973_smdi.paa
LFS
Normal file
Binary file not shown.
BIN
braf_weapons_core/9mm_M973/data/ui/1911_m973_m_ca.paa
LFS
Normal file
BIN
braf_weapons_core/9mm_M973/data/ui/1911_m973_m_ca.paa
LFS
Normal file
Binary file not shown.
BIN
braf_weapons_core/9mm_M973/data/ui/1911_m973_x_ca.paa
LFS
Normal file
BIN
braf_weapons_core/9mm_M973/data/ui/1911_m973_x_ca.paa
LFS
Normal file
Binary file not shown.
301
braf_weapons_core/CfgAmmo.hpp
Normal file
301
braf_weapons_core/CfgAmmo.hpp
Normal file
@@ -0,0 +1,301 @@
|
||||
class CfgAmmo {
|
||||
class BulletBase;
|
||||
class B_762x51_Ball;
|
||||
class B_338_Ball;
|
||||
class B_556x45_Ball;
|
||||
//.308
|
||||
class braf_308_ball : B_762x51_Ball {
|
||||
hit = 11.6;
|
||||
indirectHit = 0;
|
||||
indirectHitRange = 0;
|
||||
cartridge = "FxCartridge_762";
|
||||
visibleFire = 3; // how much is visible when this weapon is fired
|
||||
audibleFire = 45;
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red.p3d";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
dangerRadiusBulletClose = 8;
|
||||
dangerRadiusHit = 12;
|
||||
suppressionRadiusBulletClose = 6;
|
||||
suppressionRadiusHit = 8;
|
||||
cost = 1.2;
|
||||
airLock = true;
|
||||
typicalSpeed = 800;
|
||||
caliber = 1.6;
|
||||
airFriction = -0.001;
|
||||
waterFriction = -0.4;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=28.955999;
|
||||
ACE_bulletMass=9.4608002;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.549999,-25.469999,-22.85,-20.120001,-16.98,-12.8,-7.6399999,-1.53,5.96,15.17,26.190001};
|
||||
ACE_ballisticCoefficients[]={0.2};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={700,800,820,833,845};
|
||||
ACE_barrelLengths[]={254,406.39999,508,609.59998,660.40002};
|
||||
class CamShakeExplode {
|
||||
power = 2.82843;
|
||||
duration = 0.6;
|
||||
frequency = 20;
|
||||
distance = 8.48528;
|
||||
};
|
||||
class CamShakeHit {
|
||||
power = 5;
|
||||
duration = 0.2;
|
||||
frequency = 20;
|
||||
distance = 1;
|
||||
};
|
||||
};
|
||||
class braf_308_ball_red: braf_308_ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
effectfly = "Braf_tracer_red";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
};
|
||||
class braf_308_ball_Green: braf_308_ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_green";
|
||||
effectfly = "Braf_tracer_green";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
};
|
||||
class braf_308_ball_yellow: braf_308_ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_yellow";
|
||||
effectfly = "Braf_tracer_yellow";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
};
|
||||
class braf_308_ball_Festin : BulletBase
|
||||
{
|
||||
hit = 0;
|
||||
cartridge = "FxCartridge_762";
|
||||
};
|
||||
//.338
|
||||
class braf_338_ball: B_338_Ball {
|
||||
hit=16;
|
||||
indirectHit=0;
|
||||
indirectHitRange=0;
|
||||
cartridge="FxCartridge_338_Ball";
|
||||
audibleFire=80;
|
||||
visibleFireTime=3;
|
||||
dangerRadiusBulletClose=10;
|
||||
dangerRadiusHit=14;
|
||||
suppressionRadiusBulletClose=8;
|
||||
suppressionRadiusHit=10;
|
||||
cost=6;
|
||||
airLock=1;
|
||||
caliber=2;
|
||||
typicalSpeed=890;
|
||||
timeToLive=10;
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime=0.075000003;
|
||||
tracerEndTime = 10;
|
||||
airFriction=-0.00060999999;
|
||||
class CamShakeExplode
|
||||
{
|
||||
power=3.1622801;
|
||||
duration=0.60000002;
|
||||
frequency=20;
|
||||
distance=9.4868298;
|
||||
};
|
||||
class CamShakeHit
|
||||
{
|
||||
power=10;
|
||||
duration=0.40000001;
|
||||
frequency=20;
|
||||
distance=1;
|
||||
};
|
||||
};
|
||||
class braf_338_ball_red: braf_338_ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
effectfly = "Braf_tracer_red";
|
||||
};
|
||||
//5.56mm
|
||||
class braf_556_ball : B_556x45_Ball {
|
||||
hit = 9;
|
||||
indirectHit = 0;
|
||||
indirectHitRange = 0;
|
||||
cartridge = "FxCartridge_556";
|
||||
visibleFire = 3; // how much is visible when this weapon is fired
|
||||
audibleFire = 35;
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 3;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 1;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
dangerRadiusBulletClose = 8;
|
||||
dangerRadiusHit = 12;
|
||||
suppressionRadiusBulletClose = 4;
|
||||
suppressionRadiusHit = 8;
|
||||
cost = 1;
|
||||
airLock = true;
|
||||
typicalSpeed = 920;
|
||||
caliber = 1.6;
|
||||
airFriction = -0.0012000001;
|
||||
waterFriction = -0.30000001;
|
||||
ACE_caliber=5.823;
|
||||
ACE_bulletLength=28.955999;
|
||||
ACE_bulletMass=9.4608002;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.549999,-25.469999,-22.85,-20.120001,-16.98,-12.8,-7.6399999,-1.53,5.96,15.17,26.190001};
|
||||
ACE_ballisticCoefficients[]={0.2};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={700,800,820,833,845};
|
||||
ACE_barrelLengths[]={254,406.39999,508,609.59998,660.40002};
|
||||
class CamShakeExplode {
|
||||
power=2.2360699;
|
||||
duration=0.40000001;
|
||||
frequency=20;
|
||||
distance=6.7082;
|
||||
};
|
||||
class CamShakeHit
|
||||
{
|
||||
power=5;
|
||||
duration=0.2;
|
||||
frequency=20;
|
||||
distance=1;
|
||||
};
|
||||
};
|
||||
class braf_556_ball_red: B_556x45_Ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
effectfly = "Braf_tracer_red";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
};
|
||||
class braf_556_ball_Green: B_556x45_Ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_green";
|
||||
effectfly = "Braf_tracer_green";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
};
|
||||
class braf_556_ball_yellow: B_556x45_Ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_yellow";
|
||||
effectfly = "Braf_tracer_yellow";
|
||||
lightcolor[] = {0.25,0.25,0.5};
|
||||
flaresize = 5;
|
||||
effectflare = "FlareShell";
|
||||
tracerScale = 2.0;
|
||||
tracerStartTime = 0;
|
||||
tracerEndTime = 10;
|
||||
};
|
||||
class braf_556_ball_Festin : B_556x45_Ball {
|
||||
hit = 0;
|
||||
cartridge = "FxCartridge_556";
|
||||
};
|
||||
//7.62mm
|
||||
class braf_762_ball: B_762x51_Ball {
|
||||
hit=11.6;
|
||||
indirectHit=0;
|
||||
indirectHitRange=0;
|
||||
cartridge="FxCartridge_762";
|
||||
visibleFire=3;
|
||||
audibleFire=45;
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
lightcolor[]={0.25,0.25,0.5};
|
||||
flaresize=5;
|
||||
effectflare="FlareShell";
|
||||
tracerScale=2;
|
||||
tracerStartTime=0;
|
||||
tracerEndTime=10;
|
||||
dangerRadiusBulletClose=8;
|
||||
dangerRadiusHit=12;
|
||||
suppressionRadiusBulletClose=6;
|
||||
suppressionRadiusHit=8;
|
||||
cost=1.2;
|
||||
airLock=1;
|
||||
typicalSpeed=800;
|
||||
caliber=1.6;
|
||||
airFriction=-0.001;
|
||||
waterFriction=-0.40000001;
|
||||
ACE_caliber=7.823;
|
||||
ACE_bulletLength=28.955999;
|
||||
ACE_bulletMass=9.4608002;
|
||||
ACE_ammoTempMuzzleVelocityShifts[]={-26.549999,-25.469999,-22.85,-20.120001,-16.98,-12.8,-7.6399999,-1.53,5.96,15.17,26.190001};
|
||||
ACE_ballisticCoefficients[]={0.2};
|
||||
ACE_velocityBoundaries[]={};
|
||||
ACE_standardAtmosphere="ICAO";
|
||||
ACE_dragModel=7;
|
||||
ACE_muzzleVelocities[]={700,800,820,833,845};
|
||||
ACE_barrelLengths[]={254,406.39999,508,609.59998,660.40002};
|
||||
class CamShakeExplode
|
||||
{
|
||||
power=2.8284299;
|
||||
duration=0.60000002;
|
||||
frequency=20;
|
||||
distance=8.48528;
|
||||
};
|
||||
class CamShakeHit
|
||||
{
|
||||
power=5;
|
||||
duration=0.2;
|
||||
frequency=20;
|
||||
distance=1;
|
||||
};
|
||||
};
|
||||
class braf_762_ball_red: braf_762_ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
|
||||
effectfly="Braf_tracer_red";
|
||||
lightcolor[]={0.25,0.25,0.5};
|
||||
flaresize=5;
|
||||
effectflare="FlareShell";
|
||||
tracerScale=2;
|
||||
tracerStartTime=0;
|
||||
tracerEndTime=10;
|
||||
};
|
||||
class braf_762_ball_Green: braf_762_ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_green";
|
||||
effectfly="Braf_tracer_green";
|
||||
lightcolor[]={0.25,0.25,0.5};
|
||||
flaresize=5;
|
||||
effectflare="FlareShell";
|
||||
tracerScale=2;
|
||||
tracerStartTime=0;
|
||||
tracerEndTime=10;
|
||||
};
|
||||
class braf_762_ball_yellow: braf_762_ball {
|
||||
model="\A3\Weapons_f\Data\bullettracer\tracer_yellow";
|
||||
effectfly="Braf_tracer_yellow";
|
||||
lightcolor[]={0.25,0.25,0.5};
|
||||
flaresize=5;
|
||||
effectflare="FlareShell";
|
||||
tracerScale=2;
|
||||
tracerStartTime=0;
|
||||
tracerEndTime=10;
|
||||
};
|
||||
class braf_762_ball_Festin: BulletBase {
|
||||
hit=0;
|
||||
cartridge="FxCartridge_762";
|
||||
};
|
||||
|
||||
};
|
||||
37
braf_weapons_core/config.cpp
Normal file
37
braf_weapons_core/config.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
class CfgPatches
|
||||
{
|
||||
class braf_weapons_core
|
||||
{
|
||||
author = "BRAF Team";
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {"A3_weapons_f","braf_main"};
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgAmmo.hpp"
|
||||
|
||||
class CfgWeapons
|
||||
{
|
||||
class hgun_ACPC2_F;
|
||||
class braf_imbel_m973 : hgun_ACPC2_F
|
||||
{
|
||||
author = "BRAF Team";
|
||||
_generalMacro = "braf_imbel_m973";
|
||||
baseWeapon = "braf_imbel_m973";
|
||||
scope = 2;
|
||||
picture = "braf\braf_weapons_core\9mm_M973\data\ui\1911_M973_x_ca.paa";
|
||||
magazines[] = {"braf_9Rnd_9mm"};
|
||||
magazineWell[] = {"braf_9mm_1911"};
|
||||
displayname = "IMBEL M973 9mm";
|
||||
descriptionShort = "Brazilian Army 9mm 1911 pistol";
|
||||
class Library
|
||||
{
|
||||
libTextDesc = "Brazilian Army 9mm 1911 pistol";
|
||||
};
|
||||
hiddenSelections[] = {"camo"};
|
||||
hiddenSelectionsTextures[] = {"\braf\braf_weapons_core\9mm_M973\data\1911_M973_co.paa"};
|
||||
hiddenSelectionsMaterials[] = {"\braf\braf_weapons_core\9mm_M973\data\1911_M973.rvmat"};
|
||||
};
|
||||
};
|
||||
166
braf_weapons_core/script_component.hpp
Normal file
166
braf_weapons_core/script_component.hpp
Normal file
@@ -0,0 +1,166 @@
|
||||
#ifdef COMPONENT_BEAUTIFIED
|
||||
#define COMPONENT_NAME QUOTE(BRAF - COMPONENT_BEAUTIFIED)
|
||||
#else
|
||||
#define COMPONENT_NAME QUOTE(BRAF - COMPONENT)
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_ENABLED_LASERPOINTER
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_ENABLED_LASERPOINTER
|
||||
#define DEBUG_SETTINGS DEBUG_ENABLED_LASERPOINTER
|
||||
#endif
|
||||
|
||||
#define DEBUG_SYNCHRONOUS
|
||||
#include "\x\cba\addons\main\script_macros_common.hpp"
|
||||
#include "\x\cba\addons\xeh\script_xeh.hpp"
|
||||
|
||||
// Default versioning level
|
||||
#define DEFAULT_VERSIONING_LEVEL 2
|
||||
|
||||
#define DGVAR(varName) if(isNil "ACE_DEBUG_NAMESPACE") then { ACE_DEBUG_NAMESPACE = []; }; if(!(QUOTE(GVAR(varName)) in ACE_DEBUG_NAMESPACE)) then { PUSH(ACE_DEBUG_NAMESPACE, QUOTE(GVAR(varName))); }; GVAR(varName)
|
||||
#define DVAR(varName) if(isNil "ACE_DEBUG_NAMESPACE") then { ACE_DEBUG_NAMESPACE = []; }; if(!(QUOTE(varName) in ACE_DEBUG_NAMESPACE)) then { PUSH(ACE_DEBUG_NAMESPACE, QUOTE(varName)); }; varName
|
||||
#define DFUNC(var1) TRIPLES(ADDON,fnc,var1)
|
||||
#define DEFUNC(var1,var2) TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)
|
||||
|
||||
#undef QFUNC
|
||||
#undef QEFUNC
|
||||
#define QFUNC(var1) QUOTE(DFUNC(var1))
|
||||
#define QEFUNC(var1,var2) QUOTE(DEFUNC(var1,var2))
|
||||
|
||||
#define GETVAR_SYS(var1,var2) getVariable [ARR_2(QUOTE(var1),var2)]
|
||||
#define SETVAR_SYS(var1,var2) setVariable [ARR_2(QUOTE(var1),var2)]
|
||||
#define SETPVAR_SYS(var1,var2) setVariable [ARR_3(QUOTE(var1),var2,true)]
|
||||
|
||||
#undef GETVAR
|
||||
#define GETVAR(var1,var2,var3) (var1 GETVAR_SYS(var2,var3))
|
||||
#define GETMVAR(var1,var2) (missionNamespace GETVAR_SYS(var1,var2))
|
||||
#define GETUVAR(var1,var2) (uiNamespace GETVAR_SYS(var1,var2))
|
||||
#define GETPRVAR(var1,var2) (profileNamespace GETVAR_SYS(var1,var2))
|
||||
#define GETPAVAR(var1,var2) (parsingNamespace GETVAR_SYS(var1,var2))
|
||||
|
||||
#undef SETVAR
|
||||
#define SETVAR(var1,var2,var3) var1 SETVAR_SYS(var2,var3)
|
||||
#define SETPVAR(var1,var2,var3) var1 SETPVAR_SYS(var2,var3)
|
||||
#define SETMVAR(var1,var2) missionNamespace SETVAR_SYS(var1,var2)
|
||||
#define SETUVAR(var1,var2) uiNamespace SETVAR_SYS(var1,var2)
|
||||
#define SETPRVAR(var1,var2) profileNamespace SETVAR_SYS(var1,var2)
|
||||
#define SETPAVAR(var1,var2) parsingNamespace SETVAR_SYS(var1,var2)
|
||||
|
||||
#define GETGVAR(var1,var2) GETMVAR(GVAR(var1),var2)
|
||||
#define GETEGVAR(var1,var2,var3) GETMVAR(EGVAR(var1,var2),var3)
|
||||
|
||||
#define ARR_SELECT(ARRAY,INDEX,DEFAULT) (if (count ARRAY > INDEX) then {ARRAY select INDEX} else {DEFAULT})
|
||||
|
||||
// ACEX Merge
|
||||
#define ACEX_PREFIX acex
|
||||
#define XADDON DOUBLES(ACEX_PREFIX,COMPONENT)
|
||||
#define XGVAR(var) DOUBLES(XADDON,var)
|
||||
#define EXGVAR(var1,var2) TRIPLES(ACEX_PREFIX,var1,var2)
|
||||
#define QXGVAR(var) QUOTE(XGVAR(var))
|
||||
#define QEXGVAR(var1,var2) QUOTE(EXGVAR(var1,var2))
|
||||
#define QQXGVAR(var) QUOTE(QXGVAR(var))
|
||||
#define QQEXGVAR(var1,var2) QUOTE(QEXGVAR(var1,var2))
|
||||
#define ACEX_PREP(func) PREP(func); TRIPLES(XADDON,fnc,func) = DFUNC(func)
|
||||
|
||||
|
||||
#define MACRO_ADDWEAPON(WEAPON,COUNT) class _xx_##WEAPON { \
|
||||
weapon = #WEAPON; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
|
||||
name = #ITEM; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
#define MACRO_ADDMAGAZINE(MAGAZINE,COUNT) class _xx_##MAGAZINE { \
|
||||
magazine = #MAGAZINE; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
#define MACRO_ADDBACKPACK(BACKPACK,COUNT) class _xx_##BACKPACK { \
|
||||
backpack = #BACKPACK; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
// weapon types
|
||||
#define TYPE_WEAPON_PRIMARY 1
|
||||
#define TYPE_WEAPON_HANDGUN 2
|
||||
#define TYPE_WEAPON_SECONDARY 4
|
||||
// magazine types
|
||||
#define TYPE_MAGAZINE_HANDGUN_AND_GL 16 // mainly
|
||||
#define TYPE_MAGAZINE_PRIMARY_AND_THROW 256
|
||||
#define TYPE_MAGAZINE_SECONDARY_AND_PUT 512 // mainly
|
||||
#define TYPE_MAGAZINE_MISSILE 768
|
||||
// more types
|
||||
#define TYPE_BINOCULAR_AND_NVG 4096
|
||||
#define TYPE_WEAPON_VEHICLE 65536
|
||||
#define TYPE_ITEM 131072
|
||||
// item types
|
||||
#define TYPE_DEFAULT 0
|
||||
#define TYPE_MUZZLE 101
|
||||
#define TYPE_OPTICS 201
|
||||
#define TYPE_FLASHLIGHT 301
|
||||
#define TYPE_BIPOD 302
|
||||
#define TYPE_FIRST_AID_KIT 401
|
||||
#define TYPE_FINS 501 // not implemented
|
||||
#define TYPE_BREATHING_BOMB 601 // not implemented
|
||||
#define TYPE_NVG 602
|
||||
#define TYPE_GOGGLE 603
|
||||
#define TYPE_SCUBA 604 // not implemented
|
||||
#define TYPE_HEADGEAR 605
|
||||
#define TYPE_FACTOR 607
|
||||
#define TYPE_RADIO 611
|
||||
#define TYPE_HMD 616
|
||||
#define TYPE_BINOCULAR 617
|
||||
#define TYPE_MEDIKIT 619
|
||||
#define TYPE_TOOLKIT 620
|
||||
#define TYPE_UAV_TERMINAL 621
|
||||
#define TYPE_VEST 701
|
||||
#define TYPE_UNIFORM 801
|
||||
#define TYPE_BACKPACK 901
|
||||
|
||||
#ifdef DISABLE_COMPILE_CACHE
|
||||
#undef PREP
|
||||
#define PREP(fncName) DFUNC(fncName) = compile preprocessFileLineNumbers QPATHTOF(functions\DOUBLES(fnc,fncName).sqf)
|
||||
#else
|
||||
#undef PREP
|
||||
#define PREP(fncName) [QPATHTOF(functions\DOUBLES(fnc,fncName).sqf), QFUNC(fncName)] call CBA_fnc_compileFunction
|
||||
#endif
|
||||
|
||||
#define PREP_MODULE(folder) [] call compile preprocessFileLineNumbers QPATHTOF(folder\__PREP__.sqf)
|
||||
|
||||
#define ACE_isHC (!hasInterface && !isDedicated)
|
||||
|
||||
#define IDC_STAMINA_BAR 193
|
||||
|
||||
#define ACE_DEPRECATED(arg1,arg2,arg3) WARNING_3("%1 is deprecated. Support will be dropped in version %2. Replaced by: %3",arg1,arg2,arg3)
|
||||
|
||||
#define PFORMAT_10(MESSAGE,A,B,C,D,E,F,G,H,I,J) \
|
||||
format ['%1: A=%2, B=%3, C=%4, D=%5, E=%6, F=%7, G=%8, H=%9, I=%10 J=%11', MESSAGE, RETNIL(A), RETNIL(B), RETNIL(C), RETNIL(D), RETNIL(E), RETNIL(F), RETNIL(G), RETNIL(H), RETNIL(I), RETNIL(J)]
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
#define TRACE_10(MESSAGE,A,B,C,D,E,F,G,H,I,J) LOG_SYS_FILELINENUMBERS('TRACE',PFORMAT_10(str diag_frameNo + ' ' + (MESSAGE),A,B,C,D,E,F,G,H,I,J))
|
||||
#else
|
||||
#define TRACE_10(MESSAGE,A,B,C,D,E,F,G,H,I,J) /* disabled */
|
||||
#endif
|
||||
|
||||
#define GRAVITY 9.8066
|
||||
|
||||
#define SD_TO_MIN_MAX(d) ((d) * 3.371) // Standard deviation -> min / max of random [min, mid, max]
|
||||
|
||||
// Angular unit conversion
|
||||
#define MRAD_TO_MOA(d) ((d) * 3.43774677) // Conversion factor: 54 / (5 * PI)
|
||||
#define MOA_TO_MRAD(d) ((d) * 0.29088821) // Conversion factor: (5 * PI) / 54
|
||||
#define DEG_TO_MOA(d) ((d) * 60) // Conversion factor: 60
|
||||
#define MOA_TO_DEG(d) ((d) / 60) // Conversion factor: 1 / 60
|
||||
#define DEG_TO_MRAD(d) ((d) * 17.45329252) // Conversion factor: (50 * PI) / 9
|
||||
#define MRAD_TO_DEG(d) ((d) / 17.45329252) // Conversion factor: 9 / (50 * PI)
|
||||
#define MOA_TO_RAD(d) ((d) * 0.00029088) // Conversion factor: PI / 10800
|
||||
|
||||
#define ZEUS_ACTION_CONDITION ([_target, {QUOTE(QUOTE(ADDON)) in curatorAddons _this}, missionNamespace, QUOTE(QGVAR(zeusCheck)), 1E11, 'ace_interactMenuClosed'] call EFUNC(common,cachedCall))
|
||||
|
||||
#define SUBSKILLS ["aimingAccuracy", "aimingShake", "aimingSpeed", "spotDistance", "spotTime", "courage", "reloadSpeed", "commanding", "general"]
|
||||
|
||||
#define MAX_LASER_RANGE 50
|
||||
155
braf_weapons_core/script_macros.hpp
Normal file
155
braf_weapons_core/script_macros.hpp
Normal file
@@ -0,0 +1,155 @@
|
||||
#define DEBUG_SYNCHRONOUS
|
||||
#include "\x\cba\addons\main\script_macros_common.hpp"
|
||||
#include "\x\cba\addons\xeh\script_xeh.hpp"
|
||||
|
||||
// Default versioning level
|
||||
#define DEFAULT_VERSIONING_LEVEL 2
|
||||
|
||||
#define DFUNC(var1) TRIPLES(ADDON,fnc,var1)
|
||||
#define DEFUNC(var1,var2) TRIPLES(DOUBLES(PREFIX,var1),fnc,var2)
|
||||
|
||||
#undef QFUNC
|
||||
#undef QEFUNC
|
||||
#define QFUNC(var1) QUOTE(DFUNC(var1))
|
||||
#define QEFUNC(var1,var2) QUOTE(DEFUNC(var1,var2))
|
||||
|
||||
#define GETVAR_SYS(var1,var2) getVariable [ARR_2(QUOTE(var1),var2)]
|
||||
#define SETVAR_SYS(var1,var2) setVariable [ARR_2(QUOTE(var1),var2)]
|
||||
#define SETPVAR_SYS(var1,var2) septVariable [ARR_3(QUOTE(var1),var2,true)]
|
||||
|
||||
#undef GETVAR
|
||||
#define GETVAR(var1,var2,var3) (var1 GETVAR_SYS(var2,var3))
|
||||
#define GETMVAR(var1,var2) (missionNamespace GETVAR_SYS(var1,var2))
|
||||
#define GETUVAR(var1,var2) (uiNamespace GETVAR_SYS(var1,var2))
|
||||
#define GETPRVAR(var1,var2) (profileNamespace GETVAR_SYS(var1,var2))
|
||||
#define GETPAVAR(var1,var2) (parsingNamespace GETVAR_SYS(var1,var2))
|
||||
|
||||
#undef SETVAR
|
||||
#define SETVAR(var1,var2,var3) var1 SETVAR_SYS(var2,var3)
|
||||
#define SETPVAR(var1,var2,var3) var1 SETPVAR_SYS(var2,var3)
|
||||
#define SETMVAR(var1,var2) missionNamespace SETVAR_SYS(var1,var2)
|
||||
#define SETUVAR(var1,var2) uiNamespace SETVAR_SYS(var1,var2)
|
||||
#define SETPRVAR(var1,var2) profileNamespace SETVAR_SYS(var1,var2)
|
||||
#define SETPAVAR(var1,var2) parsingNamespace SETVAR_SYS(var1,var2)
|
||||
|
||||
#define GETGVAR(var1,var2) GETMVAR(GVAR(var1),var2)
|
||||
#define GETEGVAR(var1,var2,var3) GETMVAR(EGVAR(var1,var2),var3)
|
||||
|
||||
#define ARR_SELECT(ARRAY,INDEX,DEFAULT) (if (count ARRAY > INDEX) then {ARRAY select INDEX} else {DEFAULT})
|
||||
|
||||
#define XGVAR(var) DOUBLES(XADDON,var)
|
||||
#define QXGVAR(var) QUOTE(XGVAR(var))
|
||||
#define QEXGVAR(var1,var2) QUOTE(EXGVAR(var1,var2))
|
||||
#define QQXGVAR(var) QUOTE(QXGVAR(var))
|
||||
#define QQEXGVAR(var1,var2) QUOTE(QEXGVAR(var1,var2))
|
||||
|
||||
|
||||
#define MACRO_ADDWEAPON(WEAPON,COUNT) class _xx_##WEAPON { \
|
||||
weapon = #WEAPON; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
|
||||
name = #ITEM; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
#define MACRO_ADDMAGAZINE(MAGAZINE,COUNT) class _xx_##MAGAZINE { \
|
||||
magazine = #MAGAZINE; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
#define MACRO_ADDBACKPACK(BACKPACK,COUNT) class _xx_##BACKPACK { \
|
||||
backpack = #BACKPACK; \
|
||||
count = COUNT; \
|
||||
}
|
||||
|
||||
// weapon types
|
||||
#define TYPE_WEAPON_PRIMARY 1
|
||||
#define TYPE_WEAPON_HANDGUN 2
|
||||
#define TYPE_WEAPON_SECONDARY 4
|
||||
// magazine types
|
||||
#define TYPE_MAGAZINE_HANDGUN_AND_GL 16 // mainly
|
||||
#define TYPE_MAGAZINE_PRIMARY_AND_THROW 256
|
||||
#define TYPE_MAGAZINE_SECONDARY_AND_PUT 512 // mainly
|
||||
#define TYPE_MAGAZINE_MISSILE 768
|
||||
// more types
|
||||
#define TYPE_BINOCULAR_AND_NVG 4096
|
||||
#define TYPE_WEAPON_VEHICLE 65536
|
||||
#define TYPE_ITEM 131072
|
||||
// item types
|
||||
#define TYPE_DEFAULT 0
|
||||
#define TYPE_MUZZLE 101
|
||||
#define TYPE_OPTICS 201
|
||||
#define TYPE_FLASHLIGHT 301
|
||||
#define TYPE_BIPOD 302
|
||||
#define TYPE_FIRST_AID_KIT 401
|
||||
#define TYPE_FINS 501 // not implemented
|
||||
#define TYPE_BREATHING_BOMB 601 // not implemented
|
||||
#define TYPE_NVG 602
|
||||
#define TYPE_GOGGLE 603
|
||||
#define TYPE_SCUBA 604 // not implemented
|
||||
#define TYPE_HEADGEAR 605
|
||||
#define TYPE_FACTOR 607
|
||||
#define TYPE_RADIO 611
|
||||
#define TYPE_HMD 616
|
||||
#define TYPE_BINOCULAR 617
|
||||
#define TYPE_MEDIKIT 619
|
||||
#define TYPE_TOOLKIT 620
|
||||
#define TYPE_UAV_TERMINAL 621
|
||||
#define TYPE_VEST 701
|
||||
#define TYPE_UNIFORM 801
|
||||
#define TYPE_BACKPACK 901
|
||||
|
||||
#ifdef DISABLE_COMPILE_CACHE
|
||||
#undef PREP
|
||||
#define PREP(fncName) DFUNC(fncName) = compile preprocessFileLineNumbers QPATHTOF(functions\DOUBLES(fnc,fncName).sqf)
|
||||
#else
|
||||
#undef PREP
|
||||
#define PREP(fncName) [QPATHTOF(functions\DOUBLES(fnc,fncName).sqf), QFUNC(fncName)] call CBA_fnc_compileFunction
|
||||
#endif
|
||||
|
||||
#define PREP_MODULE(folder) [] call compile preprocessFileLineNumbers QPATHTOF(folder\__PREP__.sqf)
|
||||
|
||||
#define isHeadlessClient (!hasInterface && !isDedicated)
|
||||
|
||||
#define IDC_STAMINA_BAR 193
|
||||
|
||||
#define PFORMAT_10(MESSAGE,A,B,C,D,E,F,G,H,I,J) \
|
||||
format ['%1: A=%2, B=%3, C=%4, D=%5, E=%6, F=%7, G=%8, H=%9, I=%10 J=%11', MESSAGE, RETNIL(A), RETNIL(B), RETNIL(C), RETNIL(D), RETNIL(E), RETNIL(F), RETNIL(G), RETNIL(H), RETNIL(I), RETNIL(J)]
|
||||
#ifdef DEBUG_MODE_FULL
|
||||
#define TRACE_10(MESSAGE,A,B,C,D,E,F,G,H,I,J) LOG_SYS_FILELINENUMBERS('TRACE',PFORMAT_10(str diag_frameNo + ' ' + (MESSAGE),A,B,C,D,E,F,G,H,I,J))
|
||||
#else
|
||||
#define TRACE_10(MESSAGE,A,B,C,D,E,F,G,H,I,J) /* disabled */
|
||||
#endif
|
||||
|
||||
#define GRAVITY 9.8066
|
||||
|
||||
#define SD_TO_MIN_MAX(d) ((d) * 3.371) // Standard deviation -> min / max of random [min, mid, max]
|
||||
|
||||
// Angular unit conversion
|
||||
#define MRAD_TO_MOA(d) ((d) * 3.43774677) // Conversion factor: 54 / (5 * PI)
|
||||
#define MOA_TO_MRAD(d) ((d) * 0.29088821) // Conversion factor: (5 * PI) / 54
|
||||
#define DEG_TO_MOA(d) ((d) * 60) // Conversion factor: 60
|
||||
#define MOA_TO_DEG(d) ((d) / 60) // Conversion factor: 1 / 60
|
||||
#define DEG_TO_MRAD(d) ((d) * 17.45329252) // Conversion factor: (50 * PI) / 9
|
||||
#define MRAD_TO_DEG(d) ((d) / 17.45329252) // Conversion factor: 9 / (50 * PI)
|
||||
#define MOA_TO_RAD(d) ((d) * 0.00029088) // Conversion factor: PI / 10800
|
||||
|
||||
#define SUBSKILLS ["aimingAccuracy", "aimingShake", "aimingSpeed", "spotDistance", "spotTime", "courage", "reloadSpeed", "commanding", "general"]
|
||||
|
||||
#ifndef VERSION
|
||||
#define VERSION 0
|
||||
#endif
|
||||
|
||||
#ifndef VERSION_STR
|
||||
#define VERSION_STR VERSION
|
||||
#endif
|
||||
|
||||
#ifndef VERSION_AR
|
||||
#define VERSION_AR VERSION
|
||||
#endif
|
||||
|
||||
#ifndef VERSION_CONFIG
|
||||
#define VERSION_CONFIG version = VERSION; versionStr = QUOTE(VERSION_STR); versionAr[] = {VERSION_AR}
|
||||
#endif
|
||||
Reference in New Issue
Block a user