include some more enum dumps

This commit is contained in:
nhmall
2023-12-06 21:41:49 -05:00
parent 11a926c4cc
commit c1910026f0
2 changed files with 145 additions and 14 deletions

View File

@@ -28,10 +28,15 @@
to #include defsym.h) to #include defsym.h)
- in win/share/tilemap.c for processing a tile file - in win/share/tilemap.c for processing a tile file
(define PCHAR_TILES prior to #include defsym.h). (define PCHAR_TILES prior to #include defsym.h).
- in src/allmain.c for setting up the dumping of several enums
(define DUMP_ENUMS_PCHAR, DUMP_ENUMS_MONSYS, DUMP_ENUMS_MONSYMS_DEFCHAR
DUMP_ENUMS_OBJCLASS_DEFCHARS, DUMP_ENUMS_OBJCLASS_DEFCHARS
DUMP_ENUMS_OBJCLASS_CLASSES, DUMP_ENUMS_OBJCLASS_SYMS)
*/ */
#if defined(PCHAR_S_ENUM) || defined(PCHAR_PARSE) \ #if defined(PCHAR_S_ENUM) || defined(PCHAR_PARSE) \
|| defined(PCHAR_DRAWING) || defined(PCHAR_TILES) || defined(PCHAR_DRAWING) || defined(PCHAR_TILES) \
|| defined(DUMP_ENUMS_PCHAR)
/* /*
PCHAR(idx, ch, sym, desc, clr) PCHAR(idx, ch, sym, desc, clr)
@@ -67,6 +72,13 @@
/* win/share/tilemap.c */ /* win/share/tilemap.c */
#define PCHAR(idx, ch, sym, desc, clr) { sym, desc, desc }, #define PCHAR(idx, ch, sym, desc, clr) { sym, desc, desc },
#define PCHAR2(idx, ch, sym, tilenm, desc, clr) { sym, tilenm, desc }, #define PCHAR2(idx, ch, sym, tilenm, desc, clr) { sym, tilenm, desc },
#elif defined(DUMP_ENUMS_PCHAR)
/* allmain.c */
#define PCHAR(idx, ch, sym, desc, clr) { sym, #sym },
#ifndef PCHAR2
#define PCHAR2(idx, ch, sym, tilenm, desc, clr) { sym, #sym },
#endif
#endif #endif
/* PCHAR with extra arg */ /* PCHAR with extra arg */
@@ -229,10 +241,12 @@
PCHAR2(104, '/', S_expl_br, "explosion bottom right", "", CLR_ORANGE) PCHAR2(104, '/', S_expl_br, "explosion bottom right", "", CLR_ORANGE)
#undef PCHAR #undef PCHAR
#undef PCHAR2 #undef PCHAR2
#endif /* PCHAR_S_ENUM || PCHAR_PARSE || PCHAR_DRAWING || PCHAR_TILES */ #endif /* PCHAR_S_ENUM || PCHAR_PARSE || PCHAR_DRAWING || PCHAR_TILES
* || DUMP_ENUMS_PCHAR */
#if defined(MONSYMS_S_ENUM) || defined(MONSYMS_DEFCHAR_ENUM) \ #if defined(MONSYMS_S_ENUM) || defined(MONSYMS_DEFCHAR_ENUM) \
|| defined(MONSYMS_PARSE) || defined(MONSYMS_DRAWING) || defined(MONSYMS_PARSE) || defined(MONSYMS_DRAWING) \
|| defined(DUMP_ENUMS_MONSYMS) || defined(DUMP_ENUMS_MONSYMS_DEFCHAR)
/* /*
MONSYM(idx, ch, sym desc) MONSYM(idx, ch, sym desc)
@@ -258,6 +272,14 @@
#elif defined(MONSYMS_DRAWING) #elif defined(MONSYMS_DRAWING)
/* drawing.c */ /* drawing.c */
#define MONSYM(idx, ch, basename, sym, desc) { DEF_##basename, "", desc }, #define MONSYM(idx, ch, basename, sym, desc) { DEF_##basename, "", desc },
/* allmain.c */
#elif defined(DUMP_ENUMS_MONSYMS)
#define MONSYM(idx, ch, basename, sym, desc) { sym, #sym },
#elif defined(DUMP_ENUMS_MONSYMS_DEFCHAR)
#define MONSYM(idx, ch, basename, sym, desc) { DEF_##basename, "DEF_" #basename },
#endif #endif
MONSYM( 1, 'a', ANT, S_ANT, "ant or other insect") MONSYM( 1, 'a', ANT, S_ANT, "ant or other insect")
@@ -335,11 +357,14 @@
#undef MONSYM #undef MONSYM
#endif /* MONSYMS_S_ENUM || MONSYMS_DEFCHAR_ENUM || MONSYMS_PARSE #endif /* MONSYMS_S_ENUM || MONSYMS_DEFCHAR_ENUM || MONSYMS_PARSE
* || MONSYMS_DRAWING */ * || MONSYMS_DRAWING || DUMP_ENUMS_MONSYMS)
* || DUMP_ENUMS_MONSYMS_DEFCHAR */
#if defined(OBJCLASS_S_ENUM) || defined(OBJCLASS_DEFCHAR_ENUM) \ #if defined(OBJCLASS_S_ENUM) || defined(OBJCLASS_DEFCHAR_ENUM) \
|| defined(OBJCLASS_CLASS_ENUM) || defined(OBJCLASS_PARSE) \ || defined(OBJCLASS_CLASS_ENUM) || defined(OBJCLASS_PARSE) \
|| defined (OBJCLASS_DRAWING) || defined(OBJCLASS_DRAWING) || defined(DUMP_ENUMS_OBJCLASS_DEFCHARS) \
|| defined(DUMP_ENUMS_OBJCLASS_CLASSES) \
|| defined(DUMP_ENUMS_OBJCLASS_SYMS)
/* /*
OBJCLASS(idx, ch, basename, sym, name, explain) OBJCLASS(idx, ch, basename, sym, name, explain)
@@ -387,6 +412,21 @@
/* drawing.c */ /* drawing.c */
#define OBJCLASS(idx, ch, basename, sym, name, explain) \ #define OBJCLASS(idx, ch, basename, sym, name, explain) \
{ basename##_SYM, name, explain }, { basename##_SYM, name, explain },
#elif defined(DUMP_ENUMS_OBJCLASS_DEFCHARS)
/* allmain.c */
#define OBJCLASS(idx, ch, basename, sym, name, explain) \
{ basename##_SYM, #basename "_SYM" },
#elif defined(DUMP_ENUMS_OBJCLASS_CLASSES)
/* allmain.c */
#define OBJCLASS(idx, ch, basename, sym, name, explain) \
{ basename##_CLASS, #basename "_CLASS" },
#elif defined(DUMP_ENUMS_OBJCLASS_SYMS)
/* allmain.c */
#define OBJCLASS(idx, ch, basename, sym, name, explain) \
{ sym , #sym },
#endif #endif
/* OBJCLASS with extra arg */ /* OBJCLASS with extra arg */
@@ -396,6 +436,15 @@
#elif defined(OBJCLASS_DRAWING) #elif defined(OBJCLASS_DRAWING)
#define OBJCLASS2(idx, ch, basename, sname, sym, name, explain) \ #define OBJCLASS2(idx, ch, basename, sname, sym, name, explain) \
{ sname, name, explain }, { sname, name, explain },
#elif defined(DUMP_ENUMS_OBJCLASS_DEFCHARS)
#define OBJCLASS2(idx, ch, basename, sname, sym, name, explain) \
{ sname, #sname },
#elif defined(DUMP_ENUMS_OBJCLASS_CLASSES)
#define OBJCLASS2(idx, ch, basename, sname, sym, name, explain) \
{ basename##_CLASS, #basename "_CLASS" },
#elif defined(DUMP_ENUMS_OBJCLASS_SYMS)
#define OBJCLASS2(idx, ch, basename, sname, sym, name, explain) \
{ sym , #sym },
#else #else
#define OBJCLASS2(idx, ch, basename, sname, sym, name, explain) \ #define OBJCLASS2(idx, ch, basename, sname, sym, name, explain) \
OBJCLASS(idx, ch, basename, sym, name, explain) OBJCLASS(idx, ch, basename, sym, name, explain)
@@ -424,16 +473,24 @@
#undef OBJCLASS #undef OBJCLASS
#undef OBJCLASS2 #undef OBJCLASS2
#endif /* OBJCLASS_S_ENUM || OBJCLASS_DEFCHAR_ENUM || OBJCLASS_CLASS_ENUM #endif /* OBJCLASS_S_ENUM || OBJCLASS_DEFCHAR_ENUM || OBJCLASS_CLASS_ENUM
* || OBJCLASS_PARSE || OBJCLASS_DRAWING */ * || OBJCLASS_PARSE || OBJCLASS_DRAWING
* || DUMP_ENUMS_OBJCLASS_DEFCHARS || DUMP_ENUMS_OBJCLASS_CLASSES
* || DUMP_ENUMS_OBJCLASS_SYMS */
#ifdef DEBUG #ifdef DEBUG
#if !defined(PCHAR_S_ENUM) && !defined(PCHAR_DRAWING) \ #if !defined(PCHAR_S_ENUM) && !defined(PCHAR_DRAWING) \
&& !defined(PCHAR_PARSE) && !defined(PCHAR_TILES) \ && !defined(PCHAR_PARSE) && !defined(PCHAR_TILES) \
&& !defined(DUMP_ENUMS_PCHAR) \
&& !defined(MONSYMS_S_ENUM) && !defined(MONSYMS_DEFCHAR_ENUM) \ && !defined(MONSYMS_S_ENUM) && !defined(MONSYMS_DEFCHAR_ENUM) \
&& !defined(MONSYMS_PARSE) && !defined(MONSYMS_DRAWING) \ && !defined(MONSYMS_PARSE) && !defined(MONSYMS_DRAWING) \
&& !defined(DUMP_ENUMS_MONSYMS) \
&& !defined(DUMP_ENUMS_MONSYMS_DEFCHAR) \
&& !defined(OBJCLASS_S_ENUM) && !defined(OBJCLASS_DEFCHAR_ENUM) \ && !defined(OBJCLASS_S_ENUM) && !defined(OBJCLASS_DEFCHAR_ENUM) \
&& !defined(OBJCLASS_CLASS_ENUM) && !defined(OBJCLASS_PARSE) \ && !defined(OBJCLASS_CLASS_ENUM) && !defined(OBJCLASS_PARSE) \
&& !defined (OBJCLASS_DRAWING) && !defined (OBJCLASS_DRAWING) \
&& !defined(DUMP_ENUMS_OBJCLASS_DEFCHARS) \
&& !defined(DUMP_ENUMS_OBJCLASS_CLASSES) \
&& !defined(DUMP_ENUMS_OBJCLASS_SYMS)
#error Non-productive inclusion of defsym.h #error Non-productive inclusion of defsym.h
#endif #endif
#endif /* DEBUG */ #endif /* DEBUG */

View File

@@ -1118,9 +1118,49 @@ struct enum_dump objdump[] = {
#include "objects.h" #include "objects.h"
{ NUM_OBJECTS, "NUM_OBJECTS" }, { NUM_OBJECTS, "NUM_OBJECTS" },
}; };
#define DUMP_ENUMS_PCHAR
struct enum_dump defsym_cmap_dump[] = {
#include "defsym.h"
{ MAXPCHARS, "MAXPCHARS" },
};
#undef DUMP_ENUMS_PCHAR
#define DUMP_ENUMS_MONSYMS
struct enum_dump defsym_mon_syms_dump[] = {
#include "defsym.h"
{ MAXMCLASSES, "MAXMCLASSES" },
};
#undef DUMP_ENUMS_MONSYMS
#define DUMP_ENUMS_MONSYMS_DEFCHAR
struct enum_dump defsym_mon_defchars_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_MONSYMS_DEFCHAR
#define DUMP_ENUMS_OBJCLASS_DEFCHARS
struct enum_dump objclass_defchars_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_OBJCLASS_DEFCHARS
#define DUMP_ENUMS_OBJCLASS_CLASSES
struct enum_dump objclass_classes_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_OBJCLASS_CLASSES
#define DUMP_ENUMS_OBJCLASS_SYMS
struct enum_dump objclass_syms_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_OBJCLASS_SYMS
#undef DUMP_ENUMS #undef DUMP_ENUMS
#ifndef NODUMPENUMS #ifndef NODUMPENUMS
static void static void
dump_enums(void) dump_enums(void)
{ {
@@ -1128,10 +1168,19 @@ dump_enums(void)
monsters_enum, monsters_enum,
objects_enum, objects_enum,
objects_misc_enum, objects_misc_enum,
defsym_cmap_enum,
defsym_mon_syms_enum,
defsym_mon_defchars_enum,
objclass_defchars_enum,
objclass_classes_enum,
objclass_syms_enum,
NUM_ENUM_DUMPS NUM_ENUM_DUMPS
}; };
static const char *const titles[NUM_ENUM_DUMPS] = { static const char *const titles[NUM_ENUM_DUMPS] = {
"monnums", "objects_nums" , "misc_object_nums" "monnums", "objects_nums" , "misc_object_nums",
"cmap_symbols", "mon_syms", "mon_defchars",
"objclass_defchars", "objclass_classes",
"objclass_syms",
}; };
#define dump_om(om) { om, #om } #define dump_om(om) { om, #om }
static const struct enum_dump omdump[] = { static const struct enum_dump omdump[] = {
@@ -1153,14 +1202,29 @@ dump_enums(void)
}; };
#undef dump_om #undef dump_om
static const struct enum_dump *const ed[NUM_ENUM_DUMPS] = { static const struct enum_dump *const ed[NUM_ENUM_DUMPS] = {
monsdump, objdump, omdump monsdump, objdump, omdump,
defsym_cmap_dump, defsym_mon_syms_dump,
defsym_mon_defchars_dump,
objclass_defchars_dump,
objclass_classes_dump,
objclass_syms_dump,
}; };
static const char *const pfx[NUM_ENUM_DUMPS] = { "PM_", "", "" }; static const char *const pfx[NUM_ENUM_DUMPS] = { "PM_", "", "",
static int szd[NUM_ENUM_DUMPS] = { "", "", "", "",
SIZE(monsdump), SIZE(objdump), SIZE(omdump) "", "" };
/* 0 = dump numerically only, 1 = add 'char' comment */
static const int dumpflgs[NUM_ENUM_DUMPS] = { 0, 0, 0, 0, 0, 1, 1, 0, 0};
static int szd[NUM_ENUM_DUMPS] = { SIZE(monsdump), SIZE(objdump),
SIZE(omdump), SIZE(defsym_cmap_dump),
SIZE(defsym_mon_syms_dump),
SIZE(defsym_mon_defchars_dump),
SIZE(objclass_defchars_dump),
SIZE(objclass_classes_dump),
SIZE(objclass_syms_dump)
}; };
const char *nmprefix; const char *nmprefix;
int i, j, nmwidth; int i, j, nmwidth;
char comment[BUFSZ];
for (i = 0; i < NUM_ENUM_DUMPS; ++ i) { for (i = 0; i < NUM_ENUM_DUMPS; ++ i) {
raw_printf("enum %s = {", titles[i]); raw_printf("enum %s = {", titles[i]);
@@ -1169,8 +1233,18 @@ dump_enums(void)
nmprefix = (j >= szd[i] - unprefixed_count) nmprefix = (j >= szd[i] - unprefixed_count)
? "" : pfx[i]; /* "" or "PM_" */ ? "" : pfx[i]; /* "" or "PM_" */
nmwidth = 27 - (int) strlen(nmprefix); /* 27 or 24 */ nmwidth = 27 - (int) strlen(nmprefix); /* 27 or 24 */
raw_printf(" %s%*s = %3d,", if (dumpflgs[i] > 0) {
nmprefix, -nmwidth, ed[i][j].nm, ed[i][j].val); Snprintf(comment, sizeof comment,
" /* '%c' */",
(ed[i][j].val >= 32 && ed[i][j].val <= 126)
? ed[i][j].val : ' ');
} else {
comment[0] = '\0';
}
raw_printf(" %s%*s = %3d,%s",
nmprefix, -nmwidth,
ed[i][j].nm, ed[i][j].val,
comment);
} }
raw_print("};"); raw_print("};");
raw_print(""); raw_print("");