macrohax: make MACROHAX_CONCAT useful and simplify a bunch of macros
This commit is contained in:
parent
f7ed0befdf
commit
93d779df43
3 changed files with 18 additions and 18 deletions
|
@ -1,14 +1,15 @@
|
|||
|
||||
// this needs an extra indirection to expand EXPORT_DIALOG_TASKS_CHARACTER
|
||||
#define EDT_CONCAT(a, b) MACROHAX_CONCAT(a, b)
|
||||
|
||||
// Fill the global dialog_tasks_<character> struct
|
||||
|
||||
#define WITH_EVENTS(_name, _events) WITHOUT_EVENTS(_name)
|
||||
#define WITHOUT_EVENTS(_name) \
|
||||
._name = MACROHAX_EXPAND(MACROHAX_DEFER(TASK_INDIRECT_INIT)(_name##Dialog, EDT_CONCAT(EXPORT_DIALOG_TASKS_CHARACTER, _##_name##Dialog))),
|
||||
._name = MACROHAX_EXPAND(\
|
||||
MACROHAX_DEFER(TASK_INDIRECT_INIT)( \
|
||||
_name##Dialog, MACROHAX_CONCAT(EXPORT_DIALOG_TASKS_CHARACTER, _##_name##Dialog) \
|
||||
) \
|
||||
),
|
||||
|
||||
PlayerDialogTasks EDT_CONCAT(dialog_tasks_, EXPORT_DIALOG_TASKS_CHARACTER) = {
|
||||
PlayerDialogTasks MACROHAX_CONCAT(dialog_tasks_, EXPORT_DIALOG_TASKS_CHARACTER) = {
|
||||
DIALOG_SCRIPTS
|
||||
};
|
||||
|
||||
|
@ -17,12 +18,13 @@ PlayerDialogTasks EDT_CONCAT(dialog_tasks_, EXPORT_DIALOG_TASKS_CHARACTER) = {
|
|||
#undef WITHOUT_EVENTS
|
||||
|
||||
#define WITHOUT_EVENTS(_name) \
|
||||
attr_unused static char MACROHAX_EXPAND(MACROHAX_DEFER(EDT_CONCAT)(COTASK_UNUSED_CHECK_, EDT_CONCAT(EXPORT_DIALOG_TASKS_CHARACTER, _##_name##Dialog)));
|
||||
attr_unused static char MACROHAX_CONCAT( \
|
||||
COTASK_UNUSED_CHECK_, MACROHAX_CONCAT(EXPORT_DIALOG_TASKS_CHARACTER, _##_name##Dialog) \
|
||||
);
|
||||
|
||||
DIALOG_SCRIPTS
|
||||
|
||||
#undef WITH_EVENTS
|
||||
#undef WITHOUT_EVENTS
|
||||
#undef EDT_CONTAT
|
||||
|
||||
#undef EXPORT_DIALOG_TASKS_CHARACTER
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
#define _CONV_OUT_IS_FLOAT ((float)_CONV_OUT_MAX == 1.0f)
|
||||
|
||||
#define _CONV_VALUE_FUNC \
|
||||
MACROHAX_EXPAND(MACROHAX_DEFER(MACROHAX_CONCAT)(_CONV_FUNCNAME, _convert_value))
|
||||
MACROHAX_CONCAT(_CONV_FUNCNAME, _convert_value)
|
||||
|
||||
#define _CONV_IMPL_FUNC \
|
||||
MACROHAX_EXPAND(MACROHAX_DEFER(MACROHAX_CONCAT)(_CONV_FUNCNAME, _impl))
|
||||
MACROHAX_CONCAT(_CONV_FUNCNAME, _impl)
|
||||
|
||||
#define _CONV_DISPATCH_1_FUNC \
|
||||
_CONV_FUNCNAME
|
||||
|
||||
#define _CONV_DISPATCH_2_FUNC \
|
||||
MACROHAX_EXPAND(MACROHAX_DEFER(MACROHAX_CONCAT)(_CONV_FUNCNAME, _dispatch_2))
|
||||
MACROHAX_CONCAT(_CONV_FUNCNAME, _dispatch_2)
|
||||
|
||||
static _CONV_OUT_TYPE _CONV_VALUE_FUNC(_CONV_IN_TYPE val) {
|
||||
if(_CONV_IN_IS_FLOAT) {
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
#define MACROHAX_DEFER(id) id MACROHAX_EMPTY()
|
||||
#define MACROHAX_OBSTRUCT(...) __VA_ARGS__ MACROHAX_DEFER(MACROHAX_EMPTY)()
|
||||
#define MACROHAX_EXPAND(...) __VA_ARGS__
|
||||
#define MACROHAX_CONCAT(a, b) a ## b
|
||||
#define MACROHAX_ADDLINENUM(a) MACROHAX_EXPAND(MACROHAX_DEFER(MACROHAX_CONCAT)(a, __LINE__))
|
||||
#define MACROHAX_CONCAT_(a, b) a ## b
|
||||
#define MACROHAX_CONCAT(a, b) MACROHAX_CONCAT_(a, b)
|
||||
#define MACROHAX_ADDLINENUM(a) MACROHAX_CONCAT(a, __LINE__)
|
||||
#define MACROHAX_STRINGIFY(x) #x
|
||||
|
||||
// Expands to 0 if argument list is empty, 1 otherwise.
|
||||
|
@ -55,14 +56,11 @@
|
|||
|
||||
// Expands to baseN, where N is the number of arguments.
|
||||
#define MACROHAX_OVERLOAD_NARGS(base, ...) \
|
||||
MACROHAX_EXPAND(\
|
||||
MACROHAX_DEFER(MACROHAX_CONCAT)(base, MACROHAX_NARGS(__VA_ARGS__))\
|
||||
)
|
||||
MACROHAX_CONCAT(base, MACROHAX_NARGS(__VA_ARGS__))
|
||||
|
||||
// Expands to baseN, where N is 0 if the argument list is empty, 1 otherwise.
|
||||
#define MACROHAX_OVERLOAD_HASARGS(base, ...) \
|
||||
MACROHAX_EXPAND(\
|
||||
MACROHAX_DEFER(MACROHAX_CONCAT)(base, MACROHAX_HASARGS(__VA_ARGS__))\
|
||||
)
|
||||
MACROHAX_CONCAT(base, MACROHAX_HASARGS(__VA_ARGS__))
|
||||
|
||||
|
||||
#endif // IGUARD_util_macrohax_h
|
||||
|
|
Loading…
Reference in a new issue