Everybody loves a good yearly or so update

This commit is contained in:
KholdFuzion
2025-04-25 10:11:31 -04:00
parent 02bad2cca4
commit 414a8feb8e
373 changed files with 46731 additions and 50709 deletions
+53 -88
View File
@@ -11,102 +11,65 @@
#define INCLUDE CAT(CAT(??,=),include)
/*SPLIT/FORMAT MACROS*/
#define BBYTE(PARAM) PARAM
#define BDBYTE(PARAM) CharArrayFrom16(PARAM)
#define BTBYTE(PARAM) CharArrayFrom24(PARAM)
#define BQBYTE(PARAM) CharArrayFrom32(PARAM)
#define HEAD_BYTE(PARAM) PARAM
#define HEAD_DBYTE(PARAM) PARAM
#define HEAD_TBYTE(PARAM) PARAM
#define HEAD_QBYTE(PARAM) PARAM
#define BS_BYTE(PARAM) PARAM
#define BS_SBYTE(PARAM) PARAM
#define BS_DBYTE(PARAM) CharArrayFrom16(PARAM)
#define BS_TBYTE(PARAM) CharArrayFrom24(PARAM)
#define BS_QBYTE(PARAM) CharArrayFrom32(PARAM)
#define HEAD_BYTE(PARAM) PARAM
#define HEAD_SBYTE(PARAM) PARAM
#define HEAD_DBYTE(PARAM) PARAM
#define HEAD_TBYTE(PARAM) PARAM
#define HEAD_QBYTE(PARAM) PARAM
/*SIZE MACROS*/
#define COUNT_BYTE(PARAM) +1
#define COUNT_SBYTE(PARAM) +1
#define COUNT_DBYTE(PARAM) +2
#define COUNT_TBYTE(PARAM) +3
#define COUNT_QBYTE(PARAM) +4
#define STRUCT_BYTE(PARAM) u8 PARAM
#define STRUCT_SBYTE(PARAM) s8 PARAM
#define STRUCT_DBYTE(PARAM) s16 PARAM
#define STRUCT_TBYTE(PARAM) s8 PARAM[3]
#define STRUCT_QBYTE(PARAM) s32 PARAM
/*SPLIT/FORMAT MACROS*/
/*HACK: Use of Multiline comments for formatting avoids extra spaces in output.
Moving Splits to multiple lines for ease of reading
Fixed typo on 6 params
Use Cascade Macros to save repitition
*/
#define PARAMSPLIT_0()
#define PARAMSPLIT_1(PARAM1) \ /*
*/ B ## PARAM1,
#define PARAMSPLIT_2(PARAM1, PARAM2)\
/* */PARAMSPLIT_1(PARAM1)\/*
*/ B ## PARAM2,
#define PARAMSPLIT_3(PARAM1, PARAM2, PARAM3)\
/* */PARAMSPLIT_2(PARAM1, PARAM2)\/*
*/ B ## PARAM3,
#define PARAMSPLIT_4(PARAM1, PARAM2, PARAM3, PARAM4)\
/* */PARAMSPLIT_3(PARAM1, PARAM2, PARAM3)\/*
*/ B ## PARAM4,
#define PARAMSPLIT_5(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5)\
/* */PARAMSPLIT_4(PARAM1, PARAM2, PARAM3, PARAM4)\/*
*/ B ## PARAM5,
#define PARAMSPLIT_6(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6)\
/* */PARAMSPLIT_5(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5)\/*
*/ B ## PARAM6,
#define PARAMSPLIT_7(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7)\
/* */PARAMSPLIT_6(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6)\/*
*/ B ## PARAM7,
#define PARAMSPLIT_8(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7, PARAM8)\
/* */PARAMSPLIT_7(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7)\/*
*/ B ## PARAM8,
#define DELIM_HEAD_(A) EXPAND(_IF_VA_##A)(COMMA())
#define DELIM_COUNT_(A)
#define DELIM_BS_(A) ,
#define DELIM_STRUCT_(A) ;
/*HEAD MACROS FOR PARAMETER LISTING*/
#define HEAD_PARAMSPLIT_0()
#define HEAD_PARAMSPLIT_1(PARAM1) \
/* */HEAD_ ## PARAM1
#define HEAD_PARAMSPLIT_2(PARAM1, PARAM2)\
/* */HEAD_PARAMSPLIT_1(PARAM1),\
/* */HEAD_ ## PARAM2
#define HEAD_PARAMSPLIT_3(PARAM1, PARAM2, PARAM3)\
/* */HEAD_PARAMSPLIT_2(PARAM1, PARAM2),\
/* */HEAD_ ## PARAM3
#define HEAD_PARAMSPLIT_4(PARAM1, PARAM2, PARAM3, PARAM4)\
/* */HEAD_PARAMSPLIT_3(PARAM1, PARAM2, PARAM3),\
/* */HEAD_ ## PARAM4
#define HEAD_PARAMSPLIT_5(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5)\
/* */HEAD_PARAMSPLIT_4(PARAM1, PARAM2, PARAM3, PARAM4),\
/* */HEAD_ ## PARAM5
#define HEAD_PARAMSPLIT_6(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6)\
/* */HEAD_PARAMSPLIT_5(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5),\
/* */HEAD_ ## PARAM6
#define HEAD_PARAMSPLIT_7(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7)\
/* */HEAD_PARAMSPLIT_6(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6),\
/* */HEAD_ ## PARAM7
#define HEAD_PARAMSPLIT_8(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7, PARAM8)\
/* */HEAD_PARAMSPLIT_7(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7),\
/* */HEAD_ ## PARAM8
/*COUNT MACROS FOR COMMAND SIZE*/
#define COUNT_PARAMSPLIT_0()
#define COUNT_PARAMSPLIT_1(PARAM1) \
/* */COUNT_ ## PARAM1
#define COUNT_PARAMSPLIT_2(PARAM1, PARAM2)\
/* */COUNT_PARAMSPLIT_1(PARAM1)\
/* */COUNT_ ## PARAM2
#define COUNT_PARAMSPLIT_3(PARAM1, PARAM2, PARAM3)\
/* */COUNT_PARAMSPLIT_2(PARAM1, PARAM2)\
/* */COUNT_ ## PARAM3
#define COUNT_PARAMSPLIT_4(PARAM1, PARAM2, PARAM3, PARAM4)\
/* */COUNT_PARAMSPLIT_3(PARAM1, PARAM2, PARAM3)\
/* */COUNT_ ## PARAM4
#define COUNT_PARAMSPLIT_5(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5)\
/* */COUNT_PARAMSPLIT_4(PARAM1, PARAM2, PARAM3, PARAM4)\
/* */COUNT_ ## PARAM5
#define COUNT_PARAMSPLIT_6(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6)\
/* */COUNT_PARAMSPLIT_5(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5)\
/* */COUNT_ ## PARAM6
#define COUNT_PARAMSPLIT_7(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7)\
/* */COUNT_PARAMSPLIT_6(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6)\
/* */COUNT_ ## PARAM7
#define COUNT_PARAMSPLIT_8(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7, PARAM8)\
/* */COUNT_PARAMSPLIT_7(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7)\
/* */COUNT_ ## PARAM8
#define PARAMSPLIT_0(TYPE)
#define PARAMSPLIT_1(PARAM1, TYPE)\
/* */ TYPE##PARAM1 DELIM_##TYPE(0)
#define PARAMSPLIT_2(PARAM1, PARAM2, TYPE)\
/* */TYPE ## PARAM1 DELIM_##TYPE(1)\
/* */PARAMSPLIT_1(PARAM2, TYPE)
#define PARAMSPLIT_3(PARAM1, PARAM2, PARAM3, TYPE)\
/* */TYPE ## PARAM1 DELIM_##TYPE(1) \
/* */PARAMSPLIT_2(PARAM2, PARAM3, TYPE)
#define PARAMSPLIT_4(PARAM1, PARAM2, PARAM3, PARAM4, TYPE)\
/* */TYPE ## PARAM1 DELIM_##TYPE(1)\
/* */PARAMSPLIT_3(PARAM2, PARAM3, PARAM4, TYPE)
#define PARAMSPLIT_5(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, TYPE)\
/* */TYPE ## PARAM1 DELIM_##TYPE(1) \
/* */PARAMSPLIT_4(PARAM2, PARAM3, PARAM4, PARAM5, TYPE)
#define PARAMSPLIT_6(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, TYPE)\
/* */TYPE ## PARAM1 DELIM_##TYPE(1)\
/* */PARAMSPLIT_5(PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, TYPE)
#define PARAMSPLIT_7(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7, TYPE)\
/* */TYPE ## PARAM1 DELIM_##TYPE(1)\
/* */PARAMSPLIT_6(PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7, TYPE)
#define PARAMSPLIT_8(PARAM1, PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7, PARAM8, TYPE)\
/* */TYPE ## PARAM1 DELIM_##TYPE(1)\
/* */PARAMSPLIT_7(PARAM2, PARAM3, PARAM4, PARAM5, PARAM6, PARAM7, PARAM8, TYPE)
/*TEMPLATE COMMAND MACRO*/
@@ -145,19 +108,21 @@
*/\n \
//Alias/Polymorph\n EVAL16(Poly(A,C,D))
#endif
#define _AI_CMD(CODE) \n/*
#define _AI_CMD(CODE) \n/*
*/DESCRIPTION /*
*/DEFINE CAT(CMDNAME,(CAT(CAT(HEAD_PARAMSPLIT_, COUNTPARAMS((PARAMS))), (PARAMS))))\/*
*/DEFINE CMDNAME (CAT(CAT(PARAMSPLIT_ , COUNTPARAMS((PARAMS))), (PARAMS, HEAD_)))\/*
*/ CAT(AI_ , CMDNAME), \
/* */CAT(CAT(PARAMSPLIT_ , COUNTPARAMS((PARAMS))), (PARAMS))\n/*
*/DEFINE CAT(CAT(AI_, CMDNAME), _LENGTH) (AICMDSIZE CAT(CAT(COUNT_PARAMSPLIT_, COUNTPARAMS((PARAMS))), (PARAMS)))/*
/* */CAT(CAT(PARAMSPLIT_, COUNTPARAMS((PARAMS))), (PARAMS, BS_))\n /*
*/DEFINE CAT(CAT(AI_, CMDNAME), _LENGTH) (AICMDSIZE CAT(CAT(PARAMSPLIT_, COUNTPARAMS((PARAMS))), (PARAMS, COUNT_)))\n/*
*/typedef struct CAT(Ai_, CMDNAME) {u8 cmd; CAT(CAT(PARAMSPLIT_, COUNTPARAMS((PARAMS))),(PARAMS, STRUCT_))}CAT(Ai_, CMDNAME);/*
*/\n\n
#define _AI_DEBUG() \n/*
*/DESCRIPTION /*
*/DEFINE CAT(CMDNAME,(STRING))\/*
*/ CAT(AI_,CMDNAME), /*
*/ CAT(AI_,CMDNAME),/*
*/typedef struct CAT(Ai_, CMDNAME) {u8 cmd; u8 val[];}CAT(Ai_, CMDNAME);/*
*/\n\n
#if 0