mirror of
https://gitlab.com/kholdfuzion/goldeneye_src
synced 2026-09-01 01:11:55 -04:00
Everybody loves a good yearly or so update
This commit is contained in:
+53
-88
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user