50 lines
1.8 KiB
C++
50 lines
1.8 KiB
C++
// Internal
|
|
#define DOUBLES(var1,var2) ##var1##_##var2
|
|
#define TRIPLES(var1,var2,var3) ##var1##_##var2##_##var3
|
|
#define ADDON DOUBLES(PREFIX,COMPONENT)
|
|
#define GVAR(var1) DOUBLES(ADDON,var1)
|
|
|
|
// External
|
|
#define AFUNC(var1,var2) TRIPLES(DOUBLES(ace,var1),fnc,var2)
|
|
#define BFUNC(var1) TRIPLES(BIS,fnc,var1)
|
|
#define CFUNC(var1) TRIPLES(CBA,fnc,var1)
|
|
#define TFUNC(var1) TRIPLES(TFAR,fnc,var1)
|
|
|
|
// Main
|
|
#define QUOTE(var1) #var1
|
|
#define VERSION_CONFIG version = MAJOR.MINOR; versionStr = QUOTE(MAJOR.MINOR.PATCH.BUILD); versionAr[] = {MAJOR,MINOR,PATCH,BUILD}
|
|
|
|
// Path
|
|
#define PATHTOF_SYS(var1,var2,var3) \MAINPREFIX\var1\SUBPREFIX\var2\var3
|
|
#define PATHTOF(var1) PATHTOF_SYS(PREFIX,COMPONENT,var1)
|
|
#define PATHTOEF(var1,var2) PATHTOF_SYS(PREFIX,var1,var2)
|
|
#define QPATHTOF(var1) QUOTE(PATHTOF(var1))
|
|
#define QPATHTOEF(var1,var2) QUOTE(PATHTOEF(var1,var2))
|
|
|
|
#define PATHTOR_SYS(var1,var2,var3) MAINPREFIX\var1\SUBPREFIX\var2\var3
|
|
#define PATHTOR(var1) PATHTOR_SYS(PREFIX,COMPONENT,var1)
|
|
#define PATHTOER(var1,var2) PATHTOR_SYS(PREFIX,var1,var2)
|
|
#define QPATHTOR(var1) QUOTE(PATHTOR(var1))
|
|
#define QPATHTOER(var1,var2) QUOTE(PATHTOER(var1,var2))
|
|
|
|
// Class
|
|
#define CLASS(var1) DOUBLES(PREFIX,var1)
|
|
#define QCLASS(var1) QUOTE(DOUBLES(PREFIX,var1))
|
|
|
|
// Stringtable
|
|
#define CSTRING(var1) QUOTE(TRIPLES($STR,ADDON,var1))
|
|
#define ECSTRING(var1,var2) QUOTE(TRIPLES($STR,DOUBLES(PREFIX,var1),var2))
|
|
|
|
// Inventory
|
|
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
|
|
name = #ITEM; \
|
|
count = COUNT; \
|
|
}
|
|
|
|
#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 |