include some more enum dumps
This commit is contained in:
@@ -1118,9 +1118,49 @@ struct enum_dump objdump[] = {
|
||||
#include "objects.h"
|
||||
{ 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
|
||||
|
||||
#ifndef NODUMPENUMS
|
||||
|
||||
static void
|
||||
dump_enums(void)
|
||||
{
|
||||
@@ -1128,10 +1168,19 @@ dump_enums(void)
|
||||
monsters_enum,
|
||||
objects_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
|
||||
};
|
||||
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 }
|
||||
static const struct enum_dump omdump[] = {
|
||||
@@ -1153,14 +1202,29 @@ dump_enums(void)
|
||||
};
|
||||
#undef dump_om
|
||||
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 int szd[NUM_ENUM_DUMPS] = {
|
||||
SIZE(monsdump), SIZE(objdump), SIZE(omdump)
|
||||
static const char *const pfx[NUM_ENUM_DUMPS] = { "PM_", "", "",
|
||||
"", "", "", "",
|
||||
"", "" };
|
||||
/* 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;
|
||||
int i, j, nmwidth;
|
||||
char comment[BUFSZ];
|
||||
|
||||
for (i = 0; i < NUM_ENUM_DUMPS; ++ i) {
|
||||
raw_printf("enum %s = {", titles[i]);
|
||||
@@ -1169,8 +1233,18 @@ dump_enums(void)
|
||||
nmprefix = (j >= szd[i] - unprefixed_count)
|
||||
? "" : pfx[i]; /* "" or "PM_" */
|
||||
nmwidth = 27 - (int) strlen(nmprefix); /* 27 or 24 */
|
||||
raw_printf(" %s%*s = %3d,",
|
||||
nmprefix, -nmwidth, ed[i][j].nm, ed[i][j].val);
|
||||
if (dumpflgs[i] > 0) {
|
||||
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("");
|
||||
|
||||
Reference in New Issue
Block a user