From ae57b6ca8664e00ff4d9544339dbf29a41138040 Mon Sep 17 00:00:00 2001 From: James R <justsomejames2@gmail.com> Date: Tue, 6 Jul 2021 20:23:38 -0700 Subject: [PATCH] MORE MACROS I just can't stop myself! --- src/lua_hook.h | 10 +++++++--- src/lua_hooklib.c | 12 +++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/lua_hook.h b/src/lua_hook.h index 223b83c61f..1af1697a7b 100644 --- a/src/lua_hook.h +++ b/src/lua_hook.h @@ -90,9 +90,13 @@ grepped and found in the lists above. #define HOOK(name) hook_ ## name #define STRING_HOOK(name) stringhook_ ## name -enum { MOBJ_HOOK_LIST (MOBJ_HOOK) MOBJ_HOOK(MAX) }; -enum { HOOK_LIST (HOOK) HOOK(MAX) }; -enum { STRING_HOOK_LIST (STRING_HOOK) STRING_HOOK(MAX) }; +#define ENUM(X) enum { X ## _LIST (X) X(MAX) } + +ENUM (MOBJ_HOOK); +ENUM (HOOK); +ENUM (STRING_HOOK); + +#undef ENUM /* dead simple, LUA_HOOK(GameQuit) */ #define LUA_HOOK(type) LUA_HookVoid(HOOK(type)) diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c index ce1b16f75f..5815f17b32 100644 --- a/src/lua_hooklib.c +++ b/src/lua_hooklib.c @@ -31,12 +31,14 @@ ABSTRACTION ========================================================================= */ -static const char * const mobjHookNames[] = { MOBJ_HOOK_LIST (TOSTR) NULL }; -static const char * const hookNames[] = { HOOK_LIST (TOSTR) NULL }; +#define LIST(id, M) \ + static const char * const id [] = { M (TOSTR) NULL } -static const char * const stringHookNames[] = { - STRING_HOOK_LIST (TOSTR) NULL -}; +LIST (mobjHookNames, MOBJ_HOOK_LIST); +LIST (hookNames, HOOK_LIST); +LIST (stringHookNames, STRING_HOOK_LIST); + +#undef LIST typedef struct { int numHooks; -- GitLab