move early arg and enum dump processing to own file

This commit is contained in:
nhmall
2026-04-01 08:32:13 -04:00
parent 3917f5493d
commit 686618f34d
13 changed files with 589 additions and 555 deletions

View File

@@ -369,10 +369,11 @@ Using the cross-compiler, build the following targets:
src/dlb.c, src/do.c, src/do_name.c, src/do_wear.c,
src/dog.c, src/dogmove.c, src/dokick.c,
src/dothrow.c, src/drawing.c, src/dungeon.c,
src/eat.c, src/end.c, src/engrave.c, src/exper.c,
src/explode.c, src/extralev.c, src/files.c,
src/fountain.c, src/getpos.c, src/glyphs.c,
src/hack.c, src/hacklib.c, src/insight.c,
src/earlyarg.c src/eat.c, src/end.c, src/engrave.c,
src/exper.c, src/explode.c, src/extralev.c,
src/files.c, src/fountain.c, src/getpos.c,
src/glyphs.c, src/hack.c, src/hacklib.c,
src/iactions.c, src/insight.c,
src/invent.c, src/isaac64.c, src/light.c,
src/lock.c, src/mail.c, src/makemon.c, src/mcastu.c,
src/mdlib.c, src/mhitm.c, src/mhitu.c, src/minion.c,

View File

@@ -105,7 +105,6 @@ extern void stop_occupation(void);
extern void init_sound_disp_gamewindows(void);
extern void newgame(void);
extern void welcome(boolean);
extern int argcheck(int, char **, enum earlyarg);
extern long timet_to_seconds(time_t);
extern long timet_delta(time_t, time_t);
@@ -920,6 +919,10 @@ extern void overview_stats(winid, const char *, long *, long *) NONNULLPTRS;
extern void remdun_mapseen(int);
extern const char *endgamelevelname(char *, int);
/* ### earlyarg.c ### */
extern int argcheck(int, char **, enum earlyarg);
/* ### eat.c ### */
extern void eatmupdate(void);

View File

@@ -9,6 +9,8 @@
#define MONSPELL(def, lvl, flags) MCAST_##def
#elif defined(MCASTU_INIT)
#define MONSPELL(def, lvl, flags) { lvl, flags }
#elif defined(DUMP_MCASTU_ENUM)
#define MONSPELL(def, lvl, flags) { MCAST_##def, #def }
#endif
MONSPELL(PSI_BOLT, 0, MCF_HOSTILE|MCF_SIGHT),

View File

@@ -21,10 +21,6 @@ staticfn void do_positionbar(void);
staticfn void regen_pw(int);
staticfn void regen_hp(int);
staticfn void interrupt_multi(const char *);
staticfn void debug_fields(char *);
#ifndef NODUMPENUMS
staticfn void dump_enums(void);
#endif
#ifdef CRASHREPORT
#define USED_FOR_CRASHREPORT
@@ -960,221 +956,6 @@ interrupt_multi(const char *msg)
}
}
/*
* Argument processing helpers - for xxmain() to share
* and call.
*
* These should return TRUE if the argument matched,
* whether the processing of the argument was
* successful or not.
*
* Most of these do their thing, then after returning
* to xxmain(), the code exits without starting a game.
*
*/
static const struct early_opt earlyopts[] = {
{ ARG_DEBUG, "debug", 5, TRUE },
{ ARG_VERSION, "version", 4, TRUE },
{ ARG_SHOWPATHS, "showpaths", 8, FALSE },
#ifndef NODUMPENUMS
{ ARG_DUMPENUMS, "dumpenums", 9, FALSE },
#endif
{ ARG_DUMPGLYPHIDS, "dumpglyphids", 12, FALSE },
{ ARG_DUMPMONGEN, "dumpmongen", 10, FALSE },
{ ARG_DUMPWEIGHTS, "dumpweights", 11, FALSE },
#ifdef WIN32
{ ARG_WINDOWS, "windows", 4, TRUE },
#endif
#if defined(CRASHREPORT)
{ ARG_BIDSHOW, "bidshow", 7, FALSE },
#endif
};
#ifdef WIN32
extern int windows_early_options(const char *);
#endif
/*
* Returns:
* 0 = no match
* 1 = found and skip past this argument
* 2 = found and trigger immediate exit
*/
int
argcheck(int argc, char *argv[], enum earlyarg e_arg)
{
int i, idx;
boolean match = FALSE;
char *userea = (char *) 0;
const char *dashdash = "";
for (idx = 0; idx < SIZE(earlyopts); idx++) {
if (earlyopts[idx].e == e_arg){
break;
}
}
if (idx >= SIZE(earlyopts) || argc < 1)
return 0;
for (i = 0; i < argc; ++i) {
if (argv[i][0] != '-')
continue;
if (argv[i][1] == '-') {
userea = &argv[i][2];
dashdash = "-";
} else {
userea = &argv[i][1];
}
match = match_optname(userea, earlyopts[idx].name,
earlyopts[idx].minlength,
earlyopts[idx].valallowed);
if (match)
break;
}
if (match) {
const char *extended_opt = strchr(userea, ':');
if (!extended_opt)
extended_opt = strchr(userea, '=');
switch(e_arg) {
case ARG_DEBUG:
if (extended_opt) {
char *cpy_extended_opt;
cpy_extended_opt = dupstr(extended_opt);
debug_fields(cpy_extended_opt + 1);
free((genericptr_t) cpy_extended_opt);
}
return 1;
case ARG_VERSION: {
boolean insert_into_pastebuf = FALSE;
if (extended_opt) {
extended_opt++;
/* Deprecated in favor of "copy" - remove no later
than next major version */
if (match_optname(extended_opt, "paste", 5, FALSE)) {
insert_into_pastebuf = TRUE;
} else if (match_optname(extended_opt, "copy", 4, FALSE)) {
insert_into_pastebuf = TRUE;
} else if (match_optname(extended_opt, "dump", 4, FALSE)) {
/* version number plus enabled features and sanity
values that the program compares against the same
thing recorded in save and bones files to check
whether they're being used compatibly */
dump_version_info();
return 2; /* done */
} else if (!match_optname(extended_opt, "show", 4, FALSE)) {
raw_printf("-%sversion can only be extended with"
" -%sversion:copy or :dump or :show.\n",
dashdash, dashdash);
/* exit after we've reported bad command line argument */
return 2;
}
}
early_version_info(insert_into_pastebuf);
return 2;
}
case ARG_SHOWPATHS:
return 2;
#ifndef NODUMPENUMS
case ARG_DUMPENUMS:
dump_enums();
return 2;
#endif
case ARG_DUMPGLYPHIDS:
dump_glyphids();
return 2;
case ARG_DUMPMONGEN:
dump_mongen();
return 2;
case ARG_DUMPWEIGHTS:
dump_weights();
return 2;
#ifdef CRASHREPORT
case ARG_BIDSHOW:
crashreport_bidshow();
return 2;
#endif
#ifdef WIN32
case ARG_WINDOWS:
if (extended_opt) {
extended_opt++;
return windows_early_options(extended_opt);
}
FALLTHROUGH;
/*FALLTHRU*/
#endif
default:
break;
}
};
return 0;
}
/*
* These are internal controls to aid developers with
* testing and debugging particular aspects of the code.
* They are not player options and the only place they
* are documented is right here. No gameplay is altered.
*
* test - test whether this parser is working
* ttystatus - TTY:
* immediateflips - WIN32: turn off display performance
* optimization so that display output
* can be debugged without buffering.
* fuzzer - enable fuzzer without debugger intervention.
*/
staticfn void
debug_fields(char *opts)
{
char *op;
boolean negated = FALSE;
while ((op = strchr(opts, ',')) != 0) {
*op++ = 0;
/* recurse */
debug_fields(op);
}
if (strlen(opts) > BUFSZ / 2)
return;
/* strip leading and trailing white space */
while (isspace((uchar) *opts))
opts++;
op = eos((char *) opts);
while (--op >= opts && isspace((uchar) *op))
*op = '\0';
if (!*opts) {
/* empty */
return;
}
while ((*opts == '!') || !strncmpi(opts, "no", 2)) {
if (*opts == '!')
opts++;
else
opts += 2;
negated = !negated;
}
if (match_optname(opts, "test", 4, FALSE))
iflags.debug.test = negated ? FALSE : TRUE;
#ifdef TTY_GRAPHICS
if (match_optname(opts, "ttystatus", 9, FALSE))
iflags.debug.ttystatus = negated ? FALSE : TRUE;
#endif
#ifdef WIN32
if (match_optname(opts, "immediateflips", 14, FALSE))
iflags.debug.immediateflips = negated ? FALSE : TRUE;
#endif
if (match_optname(opts, "fuzzer", 4, FALSE))
iflags.fuzzerpending = TRUE;
return;
}
/* convert from time_t to number of seconds */
long
timet_to_seconds(time_t ttim)
@@ -1193,177 +974,4 @@ timet_delta(time_t etim, time_t stim) /* end and start times */
return (long) difftime(etim, stim);
}
#if !defined(NODUMPENUMS)
/* monsdump[] and objdump[] are also used in utf8map.c */
#define DUMP_ENUMS
#define UNPREFIXED_COUNT (5)
struct enum_dump monsdump[] = {
#include "monsters.h"
{ NUMMONS, "NUMMONS" },
{ NON_PM, "NON_PM" },
{ LOW_PM, "LOW_PM" },
{ HIGH_PM, "HIGH_PM" },
{ SPECIAL_PM, "SPECIAL_PM" }
};
struct enum_dump objdump[] = {
#include "objects.h"
{ NUM_OBJECTS, "NUM_OBJECTS" },
};
#define DUMP_ENUMS_PCHAR
static struct enum_dump defsym_cmap_dump[] = {
#include "defsym.h"
{ MAXPCHARS, "MAXPCHARS" },
};
#undef DUMP_ENUMS_PCHAR
#define DUMP_ENUMS_MONSYMS
static struct enum_dump defsym_mon_syms_dump[] = {
#include "defsym.h"
{ MAXMCLASSES, "MAXMCLASSES" },
};
#undef DUMP_ENUMS_MONSYMS
#define DUMP_ENUMS_MONSYMS_DEFCHAR
static struct enum_dump defsym_mon_defchars_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_MONSYMS_DEFCHAR
#define DUMP_ENUMS_OBJCLASS_DEFCHARS
static struct enum_dump objclass_defchars_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_OBJCLASS_DEFCHARS
#define DUMP_ENUMS_OBJCLASS_CLASSES
static struct enum_dump objclass_classes_dump[] = {
#include "defsym.h"
{ MAXOCLASSES, "MAXOCLASSES" },
};
#undef DUMP_ENUMS_OBJCLASS_CLASSES
#define DUMP_ENUMS_OBJCLASS_SYMS
static struct enum_dump objclass_syms_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_OBJCLASS_SYMS
#define DUMP_ARTI_ENUM
static struct enum_dump arti_enum_dump[] = {
#include "artilist.h"
{ AFTER_LAST_ARTIFACT, "AFTER_LAST_ARTIFACT" }
};
#undef DUMP_ARTI_ENUM
#undef DUMP_ENUMS
#ifndef NODUMPENUMS
staticfn void
dump_enums(void)
{
enum enum_dumps {
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,
arti_enum,
NUM_ENUM_DUMPS
};
#define dump_om(om) { om, #om }
static const struct enum_dump omdump[] = {
dump_om(LAST_GENERIC),
dump_om(OBJCLASS_HACK),
dump_om(FIRST_OBJECT),
dump_om(FIRST_AMULET),
dump_om(LAST_AMULET),
dump_om(FIRST_SPELL),
dump_om(LAST_SPELL),
dump_om(MAXSPELL),
dump_om(FIRST_REAL_GEM),
dump_om(LAST_REAL_GEM),
dump_om(FIRST_GLASS_GEM),
dump_om(LAST_GLASS_GEM),
dump_om(NUM_REAL_GEMS),
dump_om(NUM_GLASS_GEMS),
dump_om(MAX_GLYPH),
};
#undef dump_om
static const struct enum_dump *const ed[NUM_ENUM_DUMPS] = {
monsdump, objdump, omdump,
defsym_cmap_dump, defsym_mon_syms_dump,
defsym_mon_defchars_dump,
objclass_defchars_dump,
objclass_classes_dump,
objclass_syms_dump,
arti_enum_dump,
};
static const struct de_params {
const char *const title;
const char *const pfx;
int unprefixed_count;
int dumpflgs; /* 0 = dump numerically only, 1 = add 'char' comment */
int szd;
} edmp[NUM_ENUM_DUMPS] = {
{ "monnums", "PM_", UNPREFIXED_COUNT, 0, SIZE(monsdump) },
{ "objects_nums", "", 1, 0, SIZE(objdump) },
{ "misc_object_nums", "", 1, 0, SIZE(omdump) },
{ "cmap_symbols", "", 1, 0, SIZE(defsym_cmap_dump) },
{ "mon_syms", "", 1, 0, SIZE(defsym_mon_syms_dump) },
{ "mon_defchars", "", 1, 1, SIZE(defsym_mon_defchars_dump) },
{ "objclass_defchars", "", 1, 1, SIZE(objclass_defchars_dump) },
{ "objclass_classes", "", 1, 0, SIZE(objclass_classes_dump) },
{ "objclass_syms", "", 1, 0, SIZE(objclass_syms_dump) },
{ "artifacts_nums", "", 1, 0, SIZE(arti_enum_dump) },
};
const char *nmprefix;
int i, j, nmwidth;
char comment[BUFSZ];
for (i = 0; i < NUM_ENUM_DUMPS; ++ i) {
raw_printf("enum %s = {", edmp[i].title);
for (j = 0; j < edmp[i].szd; ++j) {
nmprefix = (j >= edmp[i].szd - edmp[i].unprefixed_count)
? "" : edmp[i].pfx; /* "" or "PM_" */
nmwidth = 27 - (int) strlen(nmprefix); /* 27 or 24 */
if (edmp[i].dumpflgs > 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("");
}
raw_print("");
}
#undef UNPREFIXED_COUNT
#endif /* NODUMPENUMS */
void
dump_glyphids(void)
{
dump_all_glyphids(stdout);
}
#endif /* !NODUMPENUMS */
/*allmain.c*/

416
src/earlyarg.c Executable file
View File

@@ -0,0 +1,416 @@
/* NetHack 3.7 enumdmp.c $NHDT-Date: 1771213100 2026/02/15 19:38:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.286 $ */
/* Copyright (c) Robert Patrick Rankin, 2012. */
/* NetHack may be freely redistributed. See license for details. */
#include "hack.h"
staticfn void debug_fields(char *);
#ifndef NODUMPENUMS
staticfn void dump_enums(void);
#endif
/*
* Argument processing helpers - for xxmain() to share
* and call.
*
* These should return TRUE if the argument matched,
* whether the processing of the argument was
* successful or not.
*
* Most of these do their thing, then after returning
* to xxmain(), the code exits without starting a game.
*
*/
static const struct early_opt earlyopts[] = {
{ ARG_DEBUG, "debug", 5, TRUE },
{ ARG_VERSION, "version", 4, TRUE },
{ ARG_SHOWPATHS, "showpaths", 8, FALSE },
#ifndef NODUMPENUMS
{ ARG_DUMPENUMS, "dumpenums", 9, FALSE },
#endif
{ ARG_DUMPGLYPHIDS, "dumpglyphids", 12, FALSE },
{ ARG_DUMPMONGEN, "dumpmongen", 10, FALSE },
{ ARG_DUMPWEIGHTS, "dumpweights", 11, FALSE },
#ifdef WIN32
{ ARG_WINDOWS, "windows", 4, TRUE },
#endif
#if defined(CRASHREPORT)
{ ARG_BIDSHOW, "bidshow", 7, FALSE },
#endif
};
#ifdef WIN32
extern int windows_early_options(const char *);
#endif
/*
* Returns:
* 0 = no match
* 1 = found and skip past this argument
* 2 = found and trigger immediate exit
*/
int
argcheck(int argc, char *argv[], enum earlyarg e_arg)
{
int i, idx;
boolean match = FALSE;
char *userea = (char *) 0;
const char *dashdash = "";
for (idx = 0; idx < SIZE(earlyopts); idx++) {
if (earlyopts[idx].e == e_arg){
break;
}
}
if (idx >= SIZE(earlyopts) || argc < 1)
return 0;
for (i = 0; i < argc; ++i) {
if (argv[i][0] != '-')
continue;
if (argv[i][1] == '-') {
userea = &argv[i][2];
dashdash = "-";
} else {
userea = &argv[i][1];
}
match = match_optname(userea, earlyopts[idx].name,
earlyopts[idx].minlength,
earlyopts[idx].valallowed);
if (match)
break;
}
if (match) {
const char *extended_opt = strchr(userea, ':');
if (!extended_opt)
extended_opt = strchr(userea, '=');
switch(e_arg) {
case ARG_DEBUG:
if (extended_opt) {
char *cpy_extended_opt;
cpy_extended_opt = dupstr(extended_opt);
debug_fields(cpy_extended_opt + 1);
free((genericptr_t) cpy_extended_opt);
}
return 1;
case ARG_VERSION: {
boolean insert_into_pastebuf = FALSE;
if (extended_opt) {
extended_opt++;
/* Deprecated in favor of "copy" - remove no later
than next major version */
if (match_optname(extended_opt, "paste", 5, FALSE)) {
insert_into_pastebuf = TRUE;
} else if (match_optname(extended_opt, "copy", 4, FALSE)) {
insert_into_pastebuf = TRUE;
} else if (match_optname(extended_opt, "dump", 4, FALSE)) {
/* version number plus enabled features and sanity
values that the program compares against the same
thing recorded in save and bones files to check
whether they're being used compatibly */
dump_version_info();
return 2; /* done */
} else if (!match_optname(extended_opt, "show", 4, FALSE)) {
raw_printf("-%sversion can only be extended with"
" -%sversion:copy or :dump or :show.\n",
dashdash, dashdash);
/* exit after we've reported bad command line argument */
return 2;
}
}
early_version_info(insert_into_pastebuf);
return 2;
}
case ARG_SHOWPATHS:
return 2;
#ifndef NODUMPENUMS
case ARG_DUMPENUMS:
dump_enums();
return 2;
#endif
case ARG_DUMPGLYPHIDS:
dump_glyphids();
return 2;
case ARG_DUMPMONGEN:
dump_mongen();
return 2;
case ARG_DUMPWEIGHTS:
dump_weights();
return 2;
#ifdef CRASHREPORT
case ARG_BIDSHOW:
crashreport_bidshow();
return 2;
#endif
#ifdef WIN32
case ARG_WINDOWS:
if (extended_opt) {
extended_opt++;
return windows_early_options(extended_opt);
}
FALLTHROUGH;
/*FALLTHRU*/
#endif
default:
break;
}
};
return 0;
}
/*
* These are internal controls to aid developers with
* testing and debugging particular aspects of the code.
* They are not player options and the only place they
* are documented is right here. No gameplay is altered.
*
* test - test whether this parser is working
* ttystatus - TTY:
* immediateflips - WIN32: turn off display performance
* optimization so that display output
* can be debugged without buffering.
* fuzzer - enable fuzzer without debugger intervention.
*/
staticfn void
debug_fields(char *opts)
{
char *op;
boolean negated = FALSE;
while ((op = strchr(opts, ',')) != 0) {
*op++ = 0;
/* recurse */
debug_fields(op);
}
if (strlen(opts) > BUFSZ / 2)
return;
/* strip leading and trailing white space */
while (isspace((uchar) *opts))
opts++;
op = eos((char *) opts);
while (--op >= opts && isspace((uchar) *op))
*op = '\0';
if (!*opts) {
/* empty */
return;
}
while ((*opts == '!') || !strncmpi(opts, "no", 2)) {
if (*opts == '!')
opts++;
else
opts += 2;
negated = !negated;
}
if (match_optname(opts, "test", 4, FALSE))
iflags.debug.test = negated ? FALSE : TRUE;
#ifdef TTY_GRAPHICS
if (match_optname(opts, "ttystatus", 9, FALSE))
iflags.debug.ttystatus = negated ? FALSE : TRUE;
#endif
#ifdef WIN32
if (match_optname(opts, "immediateflips", 14, FALSE))
iflags.debug.immediateflips = negated ? FALSE : TRUE;
#endif
if (match_optname(opts, "fuzzer", 4, FALSE))
iflags.fuzzerpending = TRUE;
return;
}
#if !defined(NODUMPENUMS)
/* monsdump[] and objdump[] are also used in utf8map.c */
#define DUMP_ENUMS
#define UNPREFIXED_COUNT (5)
struct enum_dump monsdump[] = {
#include "monsters.h"
{ NUMMONS, "NUMMONS" },
{ NON_PM, "NON_PM" },
{ LOW_PM, "LOW_PM" },
{ HIGH_PM, "HIGH_PM" },
{ SPECIAL_PM, "SPECIAL_PM" }
};
struct enum_dump objdump[] = {
#include "objects.h"
{ NUM_OBJECTS, "NUM_OBJECTS" },
};
#define DUMP_ENUMS_PCHAR
static struct enum_dump defsym_cmap_dump[] = {
#include "defsym.h"
{ MAXPCHARS, "MAXPCHARS" },
};
#undef DUMP_ENUMS_PCHAR
#define DUMP_ENUMS_MONSYMS
static struct enum_dump defsym_mon_syms_dump[] = {
#include "defsym.h"
{ MAXMCLASSES, "MAXMCLASSES" },
};
#undef DUMP_ENUMS_MONSYMS
#define DUMP_ENUMS_MONSYMS_DEFCHAR
static struct enum_dump defsym_mon_defchars_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_MONSYMS_DEFCHAR
#define DUMP_ENUMS_OBJCLASS_DEFCHARS
static struct enum_dump objclass_defchars_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_OBJCLASS_DEFCHARS
#define DUMP_ENUMS_OBJCLASS_CLASSES
static struct enum_dump objclass_classes_dump[] = {
#include "defsym.h"
{ MAXOCLASSES, "MAXOCLASSES" },
};
#undef DUMP_ENUMS_OBJCLASS_CLASSES
#define DUMP_ENUMS_OBJCLASS_SYMS
static struct enum_dump objclass_syms_dump[] = {
#include "defsym.h"
};
#undef DUMP_ENUMS_OBJCLASS_SYMS
#define DUMP_ARTI_ENUM
static struct enum_dump arti_enum_dump[] = {
#include "artilist.h"
{ AFTER_LAST_ARTIFACT, "AFTER_LAST_ARTIFACT" }
};
#undef DUMP_ARTI_ENUM
/* the enums are not part of hack.h for this one */
#define MCASTU_ENUM
enum mcast_spells {
#include "mcastu.h"
};
#undef MCASTU_ENUM
#define DUMP_MCASTU_ENUM
static struct enum_dump mcastu_enum_dump[] = {
#include "mcastu.h"
};
#undef DUMP_MCASTU_ENUM
#undef DUMP_ENUMS
#ifndef NODUMPENUMS
staticfn void
dump_enums(void)
{
enum enum_dumps {
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,
arti_enum,
mcastu_enum,
NUM_ENUM_DUMPS
};
#define dump_om(om) { om, #om }
static const struct enum_dump omdump[] = {
dump_om(LAST_GENERIC),
dump_om(OBJCLASS_HACK),
dump_om(FIRST_OBJECT),
dump_om(FIRST_AMULET),
dump_om(LAST_AMULET),
dump_om(FIRST_SPELL),
dump_om(LAST_SPELL),
dump_om(MAXSPELL),
dump_om(FIRST_REAL_GEM),
dump_om(LAST_REAL_GEM),
dump_om(FIRST_GLASS_GEM),
dump_om(LAST_GLASS_GEM),
dump_om(NUM_REAL_GEMS),
dump_om(NUM_GLASS_GEMS),
dump_om(MAX_GLYPH),
};
#undef dump_om
static const struct enum_dump *const ed[NUM_ENUM_DUMPS] = {
monsdump, objdump, omdump,
defsym_cmap_dump, defsym_mon_syms_dump,
defsym_mon_defchars_dump,
objclass_defchars_dump,
objclass_classes_dump,
objclass_syms_dump,
arti_enum_dump,
mcastu_enum_dump,
};
static const struct de_params {
const char *const title;
const char *const pfx;
int unprefixed_count;
int dumpflgs; /* 0 = dump numerically only, 1 = add 'char' comment */
int szd;
} edmp[NUM_ENUM_DUMPS] = {
{ "monnums", "PM_", UNPREFIXED_COUNT, 0, SIZE(monsdump) },
{ "objects_nums", "", 1, 0, SIZE(objdump) },
{ "misc_object_nums", "", 1, 0, SIZE(omdump) },
{ "cmap_symbols", "", 1, 0, SIZE(defsym_cmap_dump) },
{ "mon_syms", "", 1, 0, SIZE(defsym_mon_syms_dump) },
{ "mon_defchars", "", 1, 1, SIZE(defsym_mon_defchars_dump) },
{ "objclass_defchars", "", 1, 1, SIZE(objclass_defchars_dump) },
{ "objclass_classes", "", 1, 0, SIZE(objclass_classes_dump) },
{ "objclass_syms", "", 1, 0, SIZE(objclass_syms_dump) },
{ "artifacts_nums", "", 1, 0, SIZE(arti_enum_dump) },
{ "mcast_spells", "MCAST_", 0, 0, SIZE(mcastu_enum_dump) },
};
const char *nmprefix;
int i, j, nmwidth;
char comment[BUFSZ];
for (i = 0; i < NUM_ENUM_DUMPS; ++ i) {
raw_printf("enum %s = {", edmp[i].title);
for (j = 0; j < edmp[i].szd; ++j) {
nmprefix = (j >= edmp[i].szd - edmp[i].unprefixed_count)
? "" : edmp[i].pfx; /* "" or "PM_" */
nmwidth = 27 - (int) strlen(nmprefix); /* 27 or 24 */
if (edmp[i].dumpflgs > 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("");
}
raw_print("");
}
#undef UNPREFIXED_COUNT
#endif /* NODUMPENUMS */
void
dump_glyphids(void)
{
dump_all_glyphids(stdout);
}
#endif /* !NODUMPENUMS */
/*allmain.c*/

View File

@@ -276,27 +276,27 @@ VOBJ02 = $(O)ball.o $(O)bones.o $(O)botl.o $(O)calendar.o $(O)cfgfile
VOBJ03 = $(O)cmd.o $(O)coloratt.o $(O)date.o $(O)dbridge.o $(O)decl.o
VOBJ04 = $(O)detect.o $(O)dig.o $(O)display.o $(O)do.o $(O)do_name.o
VOBJ05 = $(O)do_wear.o $(O)dog.o $(O)dogmove.o $(O)dokick.o $(O)dothrow.o
VOBJ06 = $(O)drawing.o $(O)dungeon.o $(O)eat.o $(O)end.o $(O)engrave.o
VOBJ07 = $(O)exper.o $(O)explode.o $(O)extralev.o $(O)files.o $(O)fountain.o
VOBJ08 = $(O)getpos.o $(O)glyphs.o $(O)getline.o $(O)hack.o $(O)hacklib.o
VOBJ09 = $(O)insight.o $(O)invent.o $(O)isaac64.o $(O)lock.o $(O)mail.o
VOBJ10 = $(O)main.o $(O)makemon.o $(O)mcastu.o $(O)mdlib.o $(O)mhitm.o
VOBJ11 = $(O)mhitu.o $(O)minion.o $(O)mkmap.o $(O)mklev.o $(O)mkmaze.o
VOBJ12 = $(O)mkobj.o $(O)mkroom.o $(O)mon.o $(O)mondata.o $(O)monmove.o
VOBJ13 = $(O)monst.o $(O)mplayer.o $(O)mthrowu.o $(O)muse.o $(O)music.o
VOBJ14 = $(O)o_init.o $(O)objects.o $(O)objnam.o $(O)options.o $(O)pickup.o
VOBJ15 = $(O)pline.o $(O)polyself.o $(O)potion.o $(O)quest.o $(O)questpgr.o
VOBJ16 = $(O)pager.o $(O)pray.o $(O)priest.o $(O)read.o $(O)rect.o
VOBJ17 = $(O)region.o $(O)report.o $(O)restore.o $(O)rip.o $(O)rnd.o
VOBJ18 = $(O)role.o $(O)rumors.o $(O)save.o $(O)selvar.o $(O)sfstruct.o
VOBJ19 = $(O)shk.o $(O)shknam.o $(O)sit.o $(O)sounds.o $(O)sp_lev.o
VOBJ20 = $(O)spell.o $(O)stairs.o $(O)steal.o $(O)steed.o $(O)symbols.o
VOBJ21 = $(O)sys.o $(O)teleport.o $(O)strutil.o $(O)termcap.o $(O)timeout.o
VOBJ22 = $(O)topl.o $(O)topten.o $(O)trap.o $(O)u_init.o $(O)uhitm.o
VOBJ23 = $(O)utf8map.o $(O)vault.o $(O)track.o $(O)vision.o $(O)weapon.o
VOBJ24 = $(O)were.o $(O)wield.o $(O)windows.o $(O)wintty.o $(O)wizard.o
VOBJ25 = $(O)wizcmds.o $(O)worm.o $(O)worn.o $(O)write.o $(O)zap.o
VOBJ26 = $(O)light.o $(O)dlb.o $(O)iactions.o $(REGEX)
VOBJ06 = $(O)drawing.o $(O)dungeon.o $(O)earlyarg.o $(O)eat.o $(O)end.o
VOBJ07 = $(O)engrave.o $(O)exper.o $(O)explode.o $(O)extralev.o $(O)files.o
VOBJ08 = $(O)fountain.o $(O)getpos.o $(O)glyphs.o $(O)getline.o $(O)hack.o
VOBJ09 = $(O)hacklib.o $(O)iactions.o $(O)insight.o $(O)invent.o $(O)isaac64.o
VOBJ10 = $(O)lock.o $(O)mail.o $(O)main.o $(O)makemon.o $(O)mcastu.o
VOBJ11 = $(O)mdlib.o $(O)mhitm.o $(O)mhitu.o $(O)minion.o $(O)mkmap.o
VOBJ12 = $(O)mklev.o $(O)mkmaze.o $(O)mkobj.o $(O)mkroom.o $(O)mon.o
VOBJ13 = $(O)mondata.o $(O)monmove.o $(O)monst.o $(O)mplayer.o $(O)mthrowu.o
VOBJ14 = $(O)muse.o $(O)music.o $(O)o_init.o $(O)objects.o $(O)objnam.o
VOBJ15 = $(O)options.o $(O)pickup.o $(O)pline.o $(O)polyself.o $(O)potion.o
VOBJ16 = $(O)quest.o $(O)questpgr.o $(O)pager.o $(O)pray.o $(O)priest.o
VOBJ17 = $(O)read.o $(O)rect.o $(O)region.o $(O)report.o $(O)restore.o
VOBJ18 = $(O)rip.o $(O)rnd.o $(O)role.o $(O)rumors.o $(O)save.o
VOBJ19 = $(O)selvar.o $(O)sfstruct.o $(O)shk.o $(O)shknam.o $(O)sit.o
VOBJ20 = $(O)sounds.o $(O)sp_lev.o $(O)spell.o $(O)stairs.o $(O)steal.o
VOBJ21 = $(O)steed.o $(O)symbols.o $(O)sys.o $(O)teleport.o $(O)strutil.o
VOBJ22 = $(O)termcap.o $(O)timeout.o $(O)topl.o $(O)topten.o $(O)trap.o
VOBJ23 = $(O)u_init.o $(O)uhitm.o $(O)utf8map.o $(O)vault.o $(O)track.o
VOBJ24 = $(O)vision.o $(O)weapon.o $(O)were.o $(O)wield.o $(O)windows.o
VOBJ25 = $(O)wintty.o $(O)wizard.o $(O)wizcmds.o $(O)worm.o $(O)worn.o
VOBJ26 = $(O)write.o $(O)zap.o $(O)light.o $(O)dlb.o $(REGEX)
SOBJ = $(O)msdos.o $(O)pcsys.o $(O)tty.o $(O)unix.o \
$(O)video.o $(O)vidtxt.o $(O)pckeys.o
@@ -1389,6 +1389,7 @@ $(TARGETPFX)drawing.o: drawing.c $(CONFIG_H) ../include/color.h \
../include/objects.h ../include/wintype.h ../include/sym.h
$(TARGETPFX)dungeon.o: dungeon.c $(HACK_H) ../include/dgn_file.h \
../include/dlb.h
$(TARGETPFX)earlyarg.o: earlyarg.c $(HACK_H)
$(TARGETPFX)eat.o: eat.c $(HACK_H)
$(TARGETPFX)end.o: end.c $(HACK_H) ../include/dlb.h
$(TARGETPFX)engrave.o: engrave.c $(HACK_H)

View File

@@ -517,7 +517,7 @@ HACK_H = ../src/hack.h-t
HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
botl.c calendar.c cmd.c coloratt.c dbridge.c decl.c detect.c dig.c display.c \
dlb.c do.c do_name.c do_wear.c dog.c dogmove.c dokick.c dothrow.c \
drawing.c dungeon.c eat.c end.c engrave.c exper.c explode.c \
drawing.c dungeon.c earlyarg.c eat.c end.c engrave.c exper.c explode.c \
extralev.c files.c fountain.c hack.c hacklib.c \
getpos.c glyphs.c iactions.c insight.c invent.c isaac64.c light.c \
lock.c mail.c makemon.c mcastu.c mdlib.c mhitm.c \
@@ -598,22 +598,21 @@ HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.o \
$(TARGETPFX)dlb.o $(TARGETPFX)do.o $(TARGETPFX)do_name.o \
$(TARGETPFX)do_wear.o $(TARGETPFX)dog.o $(TARGETPFX)dogmove.o \
$(TARGETPFX)dokick.o $(TARGETPFX)dothrow.o $(TARGETPFX)drawing.o \
$(TARGETPFX)dungeon.o $(TARGETPFX)eat.o $(TARGETPFX)end.o \
$(TARGETPFX)engrave.o $(TARGETPFX)exper.o $(TARGETPFX)explode.o \
$(TARGETPFX)extralev.o $(TARGETPFX)files.o $(TARGETPFX)fountain.o \
$(TARGETPFX)getpos.o $(TARGETPFX)glyphs.o $(TARGETPFX)hack.o \
$(TARGETPFX)iactions.o \
$(TARGETPFX)insight.o $(TARGETPFX)invent.o $(TARGETPFX)isaac64.o \
$(TARGETPFX)light.o $(TARGETPFX)lock.o $(TARGETPFX)mail.o \
$(TARGETPFX)makemon.o $(TARGETPFX)mcastu.o $(TARGETPFX)mdlib.o \
$(TARGETPFX)mhitm.o $(TARGETPFX)mhitu.o $(TARGETPFX)minion.o \
$(TARGETPFX)mklev.o $(TARGETPFX)mkmap.o $(TARGETPFX)mkmaze.o \
$(TARGETPFX)mkobj.o $(TARGETPFX)mkroom.o $(TARGETPFX)mon.o \
$(TARGETPFX)mondata.o $(TARGETPFX)monmove.o $(TARGETPFX)monst.o \
$(TARGETPFX)mplayer.o $(TARGETPFX)mthrowu.o $(TARGETPFX)muse.o \
$(TARGETPFX)music.o $(TARGETPFX)nhlua.o $(TARGETPFX)nhlsel.o \
$(TARGETPFX)nhlobj.o $(TARGETPFX)nhmd4.o \
$(TARGETPFX)objects.o $(TARGETPFX)o_init.o \
$(TARGETPFX)dungeon.o $(TARGETPFX)earlyarg.o $(TARGETPFX)eat.o \
$(TARGETPFX)end.o $(TARGETPFX)engrave.o $(TARGETPFX)exper.o \
$(TARGETPFX)explode.o $(TARGETPFX)extralev.o $(TARGETPFX)files.o \
$(TARGETPFX)fountain.o $(TARGETPFX)getpos.o $(TARGETPFX)glyphs.o \
$(TARGETPFX)hack.o $(TARGETPFX)iactions.o $(TARGETPFX)insight.o \
$(TARGETPFX)invent.o $(TARGETPFX)isaac64.o $(TARGETPFX)light.o \
$(TARGETPFX)lock.o $(TARGETPFX)mail.o $(TARGETPFX)makemon.o \
$(TARGETPFX)mcastu.o $(TARGETPFX)mdlib.o $(TARGETPFX)mhitm.o \
$(TARGETPFX)mhitu.o $(TARGETPFX)minion.o $(TARGETPFX)mklev.o \
$(TARGETPFX)mkmap.o $(TARGETPFX)mkmaze.o $(TARGETPFX)mkobj.o \
$(TARGETPFX)mkroom.o $(TARGETPFX)mon.o $(TARGETPFX)mondata.o \
$(TARGETPFX)monmove.o $(TARGETPFX)monst.o $(TARGETPFX)mplayer.o \
$(TARGETPFX)mthrowu.o $(TARGETPFX)muse.o $(TARGETPFX)music.o \
$(TARGETPFX)nhlua.o $(TARGETPFX)nhlsel.o $(TARGETPFX)nhlobj.o \
$(TARGETPFX)nhmd4.o $(TARGETPFX)objects.o $(TARGETPFX)o_init.o \
$(TARGETPFX)objnam.o $(TARGETPFX)options.o $(TARGETPFX)pager.o \
$(TARGETPFX)pickup.o $(TARGETPFX)pline.o $(TARGETPFX)polyself.o \
$(TARGETPFX)potion.o $(TARGETPFX)pray.o $(TARGETPFX)priest.o \
@@ -629,10 +628,10 @@ HOBJ = $(TARGETPFX)allmain.o $(TARGETPFX)alloc.o \
$(TARGETPFX)teleport.o $(TARGETPFX)timeout.o $(TARGETPFX)topten.o \
$(TARGETPFX)track.o $(TARGETPFX)trap.o $(TARGETPFX)u_init.o \
$(TARGETPFX)uhitm.o $(TARGETPFX)utf8map.o $(TARGETPFX)vault.o \
$(TARGETPFX)vision.o $(TARGETPFX)weapon.o \
$(TARGETPFX)were.o $(TARGETPFX)wield.o $(TARGETPFX)windows.o \
$(TARGETPFX)wizard.o $(TARGETPFX)wizcmds.o $(TARGETPFX)worm.o \
$(TARGETPFX)worn.o $(TARGETPFX)write.o $(TARGETPFX)zap.o \
$(TARGETPFX)vision.o $(TARGETPFX)weapon.o $(TARGETPFX)were.o \
$(TARGETPFX)wield.o $(TARGETPFX)windows.o $(TARGETPFX)wizard.o \
$(TARGETPFX)wizcmds.o $(TARGETPFX)worm.o $(TARGETPFX)worn.o \
$(TARGETPFX)write.o $(TARGETPFX)zap.o \
$(REGEXOBJ) $(RANDOBJ) $(SYSOBJ) $(WINOBJ) $(HINTOBJ) $(SNDLIBOBJ) \
$(TARGETPFX)version.o
@@ -1166,6 +1165,7 @@ $(TARGETPFX)drawing.o: drawing.c $(CONFIG_H) ../include/defsym.h \
../include/sym.h ../include/wintype.h
$(TARGETPFX)dungeon.o: dungeon.c $(HACK_H) ../include/dgn_file.h \
../include/dlb.h
$(TARGETPFX)earlyarg.o: earlyarg.c $(HACK_H)
$(TARGETPFX)eat.o: eat.c $(HACK_H)
$(TARGETPFX)end.o: end.c $(HACK_H) ../include/dlb.h
$(TARGETPFX)engrave.o: engrave.c $(HACK_H)

View File

@@ -149,7 +149,7 @@ HACK_H = $(SRC)hack.h-t
HACKCSRC = allmain.c alloc.c apply.c artifact.c attrib.c ball.c bones.c \
botl.c calendar.c cfgfiles.c cmd.c coloratt.c dbridge.c decl.c detect.c \
dig.c display.c dlb.c do.c do_name.c do_wear.c dog.c dogmove.c dokick.c \
dothrow.c drawing.c dungeon.c eat.c end.c engrave.c exper.c \
dothrow.c drawing.c dungeon.c earlyarg.c eat.c end.c engrave.c exper.c \
explode.c extralev.c files.c fountain.c getpos.c glyphs.c hack.c \
hacklib.c iactions.c insight.c invent.c light.c lock.c \
mail.c makemon.c mcastu.c mhitm.c mhitu.c minion.c \
@@ -198,7 +198,7 @@ HOBJ1 = allmain.obj,alloc.obj,apply.obj,artifact.obj,attrib.obj, \
coloratt.obj,dbridge.obj,decl.obj,detect.obj,dig.obj,display.obj, \
dlb.obj,do.obj,do_name.obj,do_wear.obj
HOBJ2 = dog.obj,dogmove.obj,dokick.obj,dothrow.obj,drawing.obj, \
dungeon.obj,eat.obj,end.obj,engrave.obj,exper.obj,explode.obj, \
dungeon.obj,earlyarg.obj,eat.obj,end.obj,engrave.obj,exper.obj,explode.obj, \
extralev.obj,files.obj,fountain.obj,getpos.obj,glyphs.obj,hack.obj, \
hacklib.obj,iactions.obj,insight.obj,invent.obj
HOBJ3 = light.obj,lock.obj,mail.obj,makemon.obj,mcastu.obj, \
@@ -519,6 +519,7 @@ dokick.obj : dokick.c $(HACK_H)
dothrow.obj : dothrow.c $(HACK_H)
drawing.obj : drawing.c $(HACK_H) $(INC)tcap.h
dungeon.obj : dungeon.c $(HACK_H) $(INC)dgn_file.h $(INC)dlb.h
earlyarg.obj : earlyarg.c $(HACK_H)
eat.obj : eat.c $(HACK_H)
end.obj : end.c $(HACK_H) $(INC)dlb.h
engrave.obj : engrave.c $(HACK_H)

View File

@@ -117,10 +117,10 @@ HACK_H = $(addsuffix .h, $(addprefix $(INCL), $(CONFIGBASEH) $(HACKBASEH)))
HACKFILES := allmain alloc apply artifact attrib ball bones botl \
calendar cfgfiles cmd coloratt dbridge decl detect \
dig display dlb do do_name do_wear dog dogmove dokick \
dothrow drawing dungeon eat end engrave exper explode extralev \
files fountain getpos glyphs hack hacklib insight invent isaac64 \
light lock mail makemon mcastu mdlib mhitm mhitu minion mklev \
mkmap mkmaze mkobj mkroom mon \
dothrow drawing dungeon earlyarg eat end engrave exper explode \
extralev files fountain getpos glyphs hack hacklib iactions \
insight invent isaac64 light lock mail makemon mcastu mdlib mhitm \
mhitu minion mklev mkmap mkmaze mkobj mkroom mon \
mondata monmove monst mplayer mthrowu muse music \
nhlua nhlsel nhlobj objnam o_init objects \
options pager pickup pline polyself potion pray \
@@ -130,7 +130,7 @@ HACKFILES := allmain alloc apply artifact attrib ball bones botl \
sp_lev spell stairs steal steed strutil symbols sys teleport \
timeout topten track trap u_init utf8map \
uhitm vault version vision weapon were wield \
windows wizard wizcmds worm worn write zap iactions
windows wizard wizcmds worm worn write zap
# the date file
DATEFILES = date

View File

@@ -1232,7 +1232,7 @@ COREOBJS = $(addsuffix .o, allmain alloc apply artifact attrib ball bones botl \
calendar cfgfiles cmd coloratt cppregex \
dbridge decl detect dig display dlb do do_name do_wear \
dog dogmove dokick dothrow drawing dungeon \
eat end engrave exper explode extralev files fountain \
earlyarg eat end engrave exper explode extralev files fountain \
getpos glyphs hack iactions insight invent isaac64 light lock \
mail makemon mcastu mdlib mhitm mhitu minion mklev mkmap mkmaze mkobj mkroom \
mon mondata monmove monst mplayer mthrowu muse music \

View File

@@ -650,66 +650,64 @@ PDCINCLCON=
# windowing-system specific
HACKCSRC = \
$(SRC)allmain.c $(SRC)alloc.c $(SRC)apply.c $(SRC)artifact.c \
$(SRC)attrib.c $(SRC)ball.c $(SRC)bones.c $(SRC)botl.c \
$(SRC)calendar.c $(SRC)cmd.c $(SRC)coloratt.c $(SRC)dbridge.c \
$(SRC)decl.c $(SRC)detect.c $(SRC)dig.c $(SRC)display.c \
$(SRC)dlb.c $(SRC)do.c $(SRC)do_name.c $(SRC)do_wear.c \
$(SRC)dog.c $(SRC)dogmove.c $(SRC)dokick.c $(SRC)dothrow.c \
$(SRC)drawing.c $(SRC)dungeon.c $(SRC)eat.c $(SRC)end.c \
$(SRC)engrave.c $(SRC)exper.c $(SRC)explode.c $(SRC)files.c \
$(SRC)fountain.c $(SRC)getpos.c $(SRC)glyphs.c $(SRC)hack.c \
$(SRC)iactions.c \
$(SRC)insight.c $(SRC)invent.c $(SRC)isaac64.c $(SRC)light.c \
$(SRC)lock.c $(SRC)mail.c $(SRC)makemon.c $(SRC)mcastu.c \
$(SRC)mdlib.c $(SRC)mhitm.c $(SRC)mhitu.c $(SRC)minion.c \
$(SRC)mklev.c $(SRC)mkmap.c $(SRC)mkmaze.c $(SRC)mkobj.c \
$(SRC)mkroom.c $(SRC)mon.c $(SRC)mondata.c $(SRC)monmove.c \
$(SRC)monst.c $(SRC)mplayer.c $(SRC)mthrowu.c $(SRC)muse.c \
$(SRC)music.c $(SRC)nhlua.c $(SRC)nhlsel.c $(SRC)nhlobj.c \
$(SRC)o_init.c $(SRC)objects.c $(SRC)objnam.c $(SRC)options.c \
$(SRC)pager.c $(SRC)pickup.c $(SRC)pline.c $(SRC)polyself.c \
$(SRC)potion.c $(SRC)pray.c $(SRC)priest.c $(SRC)quest.c \
$(SRC)questpgr.c $(SRC)read.c $(SRC)rect.c $(SRC)region.c \
$(SRC)restore.c $(SRC)rip.c $(SRC)rnd.c $(SRC)role.c \
$(SRC)rumors.c $(SRC)save.c $(SRC)selvar.c\
$(SRC)sfbase.c $(SRC)sfstruct.c \
$(SRC)shk.c $(SRC)shknam.c $(SRC)sit.c $(SRC)sounds.c \
$(SRC)sp_lev.c $(SRC)spell.c $(SRC)stairs.c $(SRC)steal.c \
$(SRC)steed.c $(SRC)symbols.c $(SRC)sys.c $(SRC)teleport.c \
$(SRC)timeout.c $(SRC)topten.c $(SRC)track.c $(SRC)trap.c \
$(SRC)u_init.c $(SRC)uhitm.c $(SRC)utf8map.c $(SRC)vault.c \
$(SRC)version.c $(SRC)vision.c $(SRC)weapon.c $(SRC)were.c \
$(SRC)wield.c $(SRC)windows.c $(SRC)wizard.c $(SRC)worm.c \
$(SRC)worn.c $(SRC)write.c $(SRC)zap.c
$(SRC)allmain.c $(SRC)alloc.c $(SRC)apply.c $(SRC)artifact.c \
$(SRC)attrib.c $(SRC)ball.c $(SRC)bones.c $(SRC)botl.c \
$(SRC)calendar.c $(SRC)cmd.c $(SRC)coloratt.c $(SRC)dbridge.c \
$(SRC)decl.c $(SRC)detect.c $(SRC)dig.c $(SRC)display.c \
$(SRC)dlb.c $(SRC)do.c $(SRC)do_name.c $(SRC)do_wear.c \
$(SRC)dog.c $(SRC)dogmove.c $(SRC)dokick.c $(SRC)dothrow.c \
$(SRC)drawing.c $(SRC)dungeon.c $(SRC)earlyarg.c $(SRC)eat.c \
$(SRC)end.c $(SRC)engrave.c $(SRC)exper.c $(SRC)explode.c \
$(SRC)files.c $(SRC)fountain.c $(SRC)getpos.c $(SRC)glyphs.c \
$(SRC)hack.c $(SRC)iactions.c $(SRC)insight.c $(SRC)invent.c \
$(SRC)isaac64.c $(SRC)light.c $(SRC)lock.c $(SRC)mail.c \
$(SRC)makemon.c $(SRC)mcastu.c $(SRC)mdlib.c $(SRC)mhitm.c \
$(SRC)mhitu.c $(SRC)minion.c $(SRC)mklev.c $(SRC)mkmap.c \
$(SRC)mkmaze.c $(SRC)mkobj.c $(SRC)mkroom.c $(SRC)mon.c \
$(SRC)mondata.c $(SRC)monmove.c $(SRC)monst.c $(SRC)mplayer.c \
$(SRC)mthrowu.c $(SRC)muse.c $(SRC)music.c $(SRC)nhlua.c \
$(SRC)nhlsel.c $(SRC)nhlobj.c $(SRC)o_init.c $(SRC)objects.c \
$(SRC)objnam.c $(SRC)options.c $(SRC)pager.c $(SRC)pickup.c \
$(SRC)pline.c $(SRC)polyself.c $(SRC)potion.c $(SRC)pray.c \
$(SRC)priest.c $(SRC)quest.c $(SRC)questpgr.c $(SRC)read.c \
$(SRC)rect.c $(SRC)region.c $(SRC)restore.c $(SRC)rip.c \
$(SRC)rnd.c $(SRC)role.c $(SRC)rumors.c $(SRC)save.c \
$(SRC)selvar.c $(SRC)sfbase.c $(SRC)sfstruct.c $(SRC)shk.c \
$(SRC)shknam.c $(SRC)sit.c $(SRC)sounds.c $(SRC)sp_lev.c \
$(SRC)spell.c $(SRC)stairs.c $(SRC)steal.c $(SRC)steed.c \
$(SRC)symbols.c $(SRC)sys.c $(SRC)teleport.c $(SRC)timeout.c \
$(SRC)topten.c $(SRC)track.c $(SRC)trap.c $(SRC)u_init.c \
$(SRC)uhitm.c $(SRC)utf8map.c $(SRC)vault.c $(SRC)version.c \
$(SRC)vision.c $(SRC)weapon.c $(SRC)were.c $(SRC)wield.c \
$(SRC)windows.c $(SRC)wizard.c $(SRC)worm.c $(SRC)worn.c \
$(SRC)write.c $(SRC)zap.c
# all .h files except date.h
HACKINCL = \
$(INCL)align.h $(INCL)artifact.h $(INCL)artilist.h \
$(INCL)attrib.h $(INCL)botl.h $(INCL)color.h \
$(INCL)config.h $(INCL)config1.h $(INCL)context.h \
$(INCL)coord.h $(INCL)cstd.h $(INCL)decl.h \
$(INCL)defsym.h $(INCL)display.h $(INCL)dlb.h \
$(INCL)dungeon.h $(INCL)engrave.h $(INCL)extern.h \
$(INCL)flag.h $(INCL)fnamesiz.h $(INCL)func_tab.h \
$(INCL)global.h $(INCL)warnings.h $(INCL)hack.h \
$(INCL)lint.h $(INCL)mextra.h $(INCL)micro.h \
$(INCL)mcastu.h \
$(INCL)mfndpos.h $(INCL)mkroom.h $(INCL)monattk.h \
$(INCL)mondata.h $(INCL)monflag.h $(INCL)monst.h \
$(INCL)monsters.h $(INCL)nhmd4.h $(INCL)obj.h \
$(INCL)objects.h $(INCL)objclass.h $(INCL)optlist.h \
$(INCL)patchlevel.h $(INCL)pcconf.h $(INCL)permonst.h \
$(INCL)prop.h $(INCL)rect.h $(INCL)region.h \
$(INCL)savefile.h $(INCL)selvar.h $(INCL)sfprocs.h \
$(INCL)sym.h $(INCL)rm.h $(INCL)sp_lev.h \
$(INCL)spell.h $(INCL)sndprocs.h $(INCL)seffects.h \
$(INCL)stairs.h $(INCL)sys.h $(INCL)tcap.h \
$(INCL)timeout.h $(INCL)tradstdc.h $(INCL)trap.h \
$(INCL)unixconf.h $(INCL)vision.h $(INCL)vmsconf.h \
$(INCL)wintty.h $(INCL)wincurs.h $(INCL)winX.h \
$(INCL)winprocs.h $(INCL)wintype.h $(INCL)you.h \
$(INCL)youprop.h $(INCL)weight.h
$(INCL)align.h $(INCL)artifact.h $(INCL)artilist.h \
$(INCL)attrib.h $(INCL)botl.h $(INCL)color.h \
$(INCL)config.h $(INCL)config1.h $(INCL)context.h \
$(INCL)coord.h $(INCL)cstd.h $(INCL)decl.h \
$(INCL)defsym.h $(INCL)display.h $(INCL)dlb.h \
$(INCL)dungeon.h $(INCL)engrave.h $(INCL)extern.h \
$(INCL)flag.h $(INCL)fnamesiz.h $(INCL)func_tab.h \
$(INCL)global.h $(INCL)warnings.h $(INCL)hack.h \
$(INCL)lint.h $(INCL)mextra.h $(INCL)micro.h \
$(INCL)mcastu.h $(INCL)mfndpos.h $(INCL)mkroom.h \
$(INCL)monattk.h $(INCL)mondata.h $(INCL)monflag.h \
$(INCL)monst.h $(INCL)monsters.h $(INCL)nhmd4.h \
$(INCL)obj.h $(INCL)objects.h $(INCL)objclass.h \
$(INCL)optlist.h $(INCL)patchlevel.h $(INCL)pcconf.h \
$(INCL)permonst.h $(INCL)prop.h $(INCL)rect.h \
$(INCL)region.h $(INCL)savefile.h $(INCL)selvar.h \
$(INCL)sfprocs.h $(INCL)sym.h $(INCL)rm.h \
$(INCL)sp_lev.h $(INCL)spell.h $(INCL)sndprocs.h \
$(INCL)seffects.h $(INCL)stairs.h $(INCL)sys.h \
$(INCL)tcap.h $(INCL)timeout.h $(INCL)tradstdc.h \
$(INCL)trap.h $(INCL)unixconf.h $(INCL)vision.h \
$(INCL)vmsconf.h $(INCL)wintty.h $(INCL)wincurs.h \
$(INCL)winX.h $(INCL)winprocs.h $(INCL)wintype.h \
$(INCL)you.h $(INCL)youprop.h $(INCL)weight.h
LUA_FILES = $(DAT)asmodeus.lua $(DAT)baalz.lua $(DAT)bigrm-1.lua \
$(DAT)bigrm-10.lua $(DAT)bigrm-11.lua $(DAT)bigrm-12.lua \
@@ -861,31 +859,31 @@ COREOBJTTY = \
$(OTTY)dbridge.o $(OTTY)decl.o $(OTTY)detect.o $(OTTY)dig.o \
$(OTTY)display.o $(OTTY)do.o $(OTTY)do_name.o $(OTTY)do_wear.o \
$(OTTY)dog.o $(OTTY)dogmove.o $(OTTY)dokick.o $(OTTY)dothrow.o \
$(OTTY)drawing.o $(OTTY)dungeon.o $(OTTY)eat.o $(OTTY)end.o \
$(OTTY)engrave.o $(OTTY)exper.o $(OTTY)explode.o $(OTTY)extralev.o \
$(OTTY)files.o $(OTTY)fountain.o $(OTTY)getpos.o $(OTTY)glyphs.o \
$(OTTY)iactions.o \
$(OTTY)hack.o $(OTTY)insight.o $(OTTY)invent.o $(OTTY)isaac64.o \
$(OTTY)light.o $(OTTY)lock.o $(OTTY)mail.o $(OTTY)makemon.o \
$(OTTY)mcastu.o $(OTTY)mhitm.o $(OTTY)mhitu.o $(OTTY)minion.o \
$(OTTY)mklev.o $(OTTY)mkmap.o $(OTTY)mkmaze.o $(OTTY)mkobj.o \
$(OTTY)mkroom.o $(OTTY)mon.o $(OTTY)mondata.o $(OTTY)monmove.o \
$(OTTY)monst.o $(OTTY)mplayer.o $(OTTY)mthrowu.o $(OTTY)muse.o \
$(OTTY)music.o $(OTTY)o_init.o $(OTTY)objects.o $(OTTY)objnam.o \
$(OTTY)options.o $(OTTY)pager.o $(OTTY)pickup.o $(OTTY)pline.o \
$(OTTY)polyself.o $(OTTY)potion.o $(OTTY)pray.o $(OTTY)priest.o \
$(OTTY)quest.o $(OTTY)questpgr.o $(OTTY)read.o $(OTTY)rect.o \
$(OTTY)region.o $(OTTY)report.o $(OTTY)restore.o $(OTTY)rip.o \
$(OTTY)rnd.o $(OTTY)role.o $(OTTY)rumors.o $(OTTY)save.o \
$(OTTY)selvar.o $(OTTY)sfbase.o $(OTTY)sfstruct.o $(OTTY)shk.o \
$(OTTY)shknam.o $(OTTY)sit.o $(OTTY)sounds.o $(OTTY)sp_lev.o \
$(OTTY)spell.o $(OTTY)stairs.o $(OTTY)steal.o $(OTTY)steed.o \
$(OTTY)strutil.o $(OTTY)symbols.o $(OTTY)sys.o $(OTTY)teleport.o \
$(OTTY)timeout.o $(OTTY)topten.o $(OTTY)track.o $(OTTY)trap.o \
$(OTTY)u_init.o $(OTTY)uhitm.o $(OTTY)utf8map.o $(OTTY)vault.o \
$(OTTY)vision.o $(OTTY)weapon.o $(OTTY)were.o $(OTTY)wield.o \
$(OTTY)windows.o $(OTTY)wizard.o $(OTTY)wizcmds.o $(OTTY)worm.o \
$(OTTY)worn.o $(OTTY)write.o $(OTTY)zap.o
$(OTTY)drawing.o $(OTTY)dungeon.o $(OTTY)earlyarg.o $(OTTY)eat.o \
$(OTTY)end.o $(OTTY)engrave.o $(OTTY)exper.o $(OTTY)explode.o \
$(OTTY)extralev.o $(OTTY)files.o $(OTTY)fountain.o $(OTTY)getpos.o \
$(OTTY)glyphs.o $(OTTY)iactions.o $(OTTY)hack.o $(OTTY)insight.o \
$(OTTY)invent.o $(OTTY)isaac64.o $(OTTY)light.o $(OTTY)lock.o \
$(OTTY)mail.o $(OTTY)makemon.o $(OTTY)mcastu.o $(OTTY)mhitm.o \
$(OTTY)mhitu.o $(OTTY)minion.o $(OTTY)mklev.o $(OTTY)mkmap.o \
$(OTTY)mkmaze.o $(OTTY)mkobj.o $(OTTY)mkroom.o $(OTTY)mon.o \
$(OTTY)mondata.o $(OTTY)monmove.o $(OTTY)monst.o $(OTTY)mplayer.o \
$(OTTY)mthrowu.o $(OTTY)muse.o $(OTTY)music.o $(OTTY)o_init.o \
$(OTTY)objects.o $(OTTY)objnam.o $(OTTY)options.o $(OTTY)pager.o \
$(OTTY)pickup.o $(OTTY)pline.o $(OTTY)polyself.o $(OTTY)potion.o \
$(OTTY)pray.o $(OTTY)priest.o $(OTTY)quest.o $(OTTY)questpgr.o \
$(OTTY)read.o $(OTTY)rect.o $(OTTY)region.o $(OTTY)report.o \
$(OTTY)restore.o $(OTTY)rip.o $(OTTY)rnd.o $(OTTY)role.o \
$(OTTY)rumors.o $(OTTY)save.o $(OTTY)selvar.o $(OTTY)sfbase.o \
$(OTTY)sfstruct.o $(OTTY)shk.o $(OTTY)shknam.o $(OTTY)sit.o \
$(OTTY)sounds.o $(OTTY)sp_lev.o $(OTTY)spell.o $(OTTY)stairs.o \
$(OTTY)steal.o $(OTTY)steed.o $(OTTY)strutil.o $(OTTY)symbols.o \
$(OTTY)sys.o $(OTTY)teleport.o $(OTTY)timeout.o $(OTTY)topten.o \
$(OTTY)track.o $(OTTY)trap.o $(OTTY)u_init.o $(OTTY)uhitm.o \
$(OTTY)utf8map.o $(OTTY)vault.o $(OTTY)vision.o $(OTTY)weapon.o \
$(OTTY)were.o $(OTTY)wield.o $(OTTY)windows.o $(OTTY)wizard.o \
$(OTTY)wizcmds.o $(OTTY)worm.o $(OTTY)worn.o $(OTTY)write.o \
$(OTTY)zap.o
OBJSTTY = $(MDLIBTTY) $(COREOBJTTY) $(REGEXTTY) $(RANDOMTTY)
@@ -925,31 +923,31 @@ COREOBJGUI = \
$(OGUI)dbridge.o $(OGUI)decl.o $(OGUI)detect.o $(OGUI)dig.o \
$(OGUI)display.o $(OGUI)do.o $(OGUI)do_name.o $(OGUI)do_wear.o \
$(OGUI)dog.o $(OGUI)dogmove.o $(OGUI)dokick.o $(OGUI)dothrow.o \
$(OGUI)drawing.o $(OGUI)dungeon.o $(OGUI)eat.o $(OGUI)end.o \
$(OGUI)engrave.o $(OGUI)exper.o $(OGUI)explode.o $(OGUI)extralev.o \
$(OGUI)files.o $(OGUI)fountain.o $(OGUI)getpos.o $(OGUI)glyphs.o \
$(OGUI)iactions.o \
$(OGUI)hack.o $(OGUI)insight.o $(OGUI)invent.o $(OGUI)isaac64.o \
$(OGUI)light.o $(OGUI)lock.o $(OGUI)mail.o $(OGUI)makemon.o \
$(OGUI)mcastu.o $(OGUI)mhitm.o $(OGUI)mhitu.o $(OGUI)minion.o \
$(OGUI)mklev.o $(OGUI)mkmap.o $(OGUI)mkmaze.o $(OGUI)mkobj.o \
$(OGUI)mkroom.o $(OGUI)mon.o $(OGUI)mondata.o $(OGUI)monmove.o \
$(OGUI)monst.o $(OGUI)mplayer.o $(OGUI)mthrowu.o $(OGUI)muse.o \
$(OGUI)music.o $(OGUI)o_init.o $(OGUI)objects.o $(OGUI)objnam.o \
$(OGUI)options.o $(OGUI)pager.o $(OGUI)pickup.o $(OGUI)pline.o \
$(OGUI)polyself.o $(OGUI)potion.o $(OGUI)pray.o $(OGUI)priest.o \
$(OGUI)quest.o $(OGUI)questpgr.o $(OGUI)read.o $(OGUI)rect.o \
$(OGUI)region.o $(OGUI)report.o $(OGUI)restore.o $(OGUI)rip.o \
$(OGUI)rnd.o $(OGUI)role.o $(OGUI)rumors.o $(OGUI)save.o \
$(OGUI)selvar.o $(OGUI)sfbase.o $(OGUI)sfstruct.o $(OGUI)shk.o \
$(OGUI)shknam.o $(OGUI)sit.o $(OGUI)sounds.o $(OGUI)sp_lev.o \
$(OGUI)spell.o $(OGUI)stairs.o $(OGUI)steal.o $(OGUI)steed.o \
$(OGUI)strutil.o $(OGUI)symbols.o $(OGUI)sys.o $(OGUI)teleport.o \
$(OGUI)timeout.o $(OGUI)topten.o $(OGUI)track.o $(OGUI)trap.o \
$(OGUI)u_init.o $(OGUI)uhitm.o $(OGUI)utf8map.o $(OGUI)vault.o \
$(OGUI)vision.o $(OGUI)weapon.o $(OGUI)were.o $(OGUI)wield.o \
$(OGUI)windows.o $(OGUI)wizard.o $(OGUI)wizcmds.o $(OGUI)worm.o \
$(OGUI)worn.o $(OGUI)write.o $(OGUI)zap.o
$(OGUI)drawing.o $(OGUI)dungeon.o $(OGUI)earlyarg.o $(OGUI)eat.o \
$(OGUI)end.o $(OGUI)engrave.o $(OGUI)exper.o $(OGUI)explode.o \
$(OGUI)extralev.o $(OGUI)files.o $(OGUI)fountain.o $(OGUI)getpos.o \
$(OGUI)glyphs.o $(OGUI)iactions.o $(OGUI)hack.o $(OGUI)insight.o \
$(OGUI)invent.o $(OGUI)isaac64.o $(OGUI)light.o $(OGUI)lock.o \
$(OGUI)mail.o $(OGUI)makemon.o $(OGUI)mcastu.o $(OGUI)mhitm.o \
$(OGUI)mhitu.o $(OGUI)minion.o $(OGUI)mklev.o $(OGUI)mkmap.o \
$(OGUI)mkmaze.o $(OGUI)mkobj.o $(OGUI)mkroom.o $(OGUI)mon.o \
$(OGUI)mondata.o $(OGUI)monmove.o $(OGUI)monst.o $(OGUI)mplayer.o \
$(OGUI)mthrowu.o $(OGUI)muse.o $(OGUI)music.o $(OGUI)o_init.o \
$(OGUI)objects.o $(OGUI)objnam.o $(OGUI)options.o $(OGUI)pager.o \
$(OGUI)pickup.o $(OGUI)pline.o $(OGUI)polyself.o $(OGUI)potion.o \
$(OGUI)pray.o $(OGUI)priest.o $(OGUI)quest.o $(OGUI)questpgr.o \
$(OGUI)read.o $(OGUI)rect.o $(OGUI)region.o $(OGUI)report.o \
$(OGUI)restore.o $(OGUI)rip.o $(OGUI)rnd.o $(OGUI)role.o \
$(OGUI)rumors.o $(OGUI)save.o $(OGUI)selvar.o $(OGUI)sfbase.o \
$(OGUI)sfstruct.o $(OGUI)shk.o $(OGUI)shknam.o $(OGUI)sit.o \
$(OGUI)sounds.o $(OGUI)sp_lev.o $(OGUI)spell.o $(OGUI)stairs.o \
$(OGUI)steal.o $(OGUI)steed.o $(OGUI)strutil.o $(OGUI)symbols.o \
$(OGUI)sys.o $(OGUI)teleport.o $(OGUI)timeout.o $(OGUI)topten.o \
$(OGUI)track.o $(OGUI)trap.o $(OGUI)u_init.o $(OGUI)uhitm.o \
$(OGUI)utf8map.o $(OGUI)vault.o $(OGUI)vision.o $(OGUI)weapon.o \
$(OGUI)were.o $(OGUI)wield.o $(OGUI)windows.o $(OGUI)wizard.o \
$(OGUI)wizcmds.o $(OGUI)worm.o $(OGUI)worn.o $(OGUI)write.o \
$(OGUI)zap.o
OBJSGUI = $(MDLIBGUI) $(COREOBJGUI) $(REGEXGUI) $(RANDOMGUI)
@@ -2029,7 +2027,7 @@ cpu.tag:
! IF "$(TARGET_CPU)"=="x64"
@echo Windows x64 64-bit target build
! ELSE
! IF "$(TARGET_CPU)"=="arm64"
! IF "$(TARGET_CPU)"=="arm64"
@echo Windows arm64 64-bit target build
! ELSE
@echo Windows x86 32-bit target build
@@ -3250,6 +3248,7 @@ $(OTTY)drawing.o: drawing.c $(CONFIG_H) $(INCL)defsym.h \
$(INCL)sym.h $(INCL)wintype.h
$(OTTY)dungeon.o: dungeon.c $(HACK_H) $(INCL)dgn_file.h \
$(INCL)dlb.h
$(OTTY)earlyarg.o: earlyarg.c $(HACK_H)
$(OTTY)eat.o: eat.c $(HACK_H)
$(OTTY)end.o: end.c $(HACK_H) $(INCL)dlb.h
$(OTTY)engrave.o: engrave.c $(HACK_H)
@@ -3630,6 +3629,7 @@ $(OGUI)drawing.o: drawing.c $(CONFIG_H) $(INCL)defsym.h \
$(INCL)sym.h $(INCL)wintype.h
$(OGUI)dungeon.o: dungeon.c $(HACK_H) $(INCL)dgn_file.h \
$(INCL)dlb.h
$(OGUI)earlyarg.o: earlyarg.c $(HACK_H)
$(OGUI)eat.o: eat.c $(HACK_H)
$(OGUI)end.o: end.c $(HACK_H) $(INCL)dlb.h
$(OGUI)engrave.o: engrave.c $(HACK_H)

View File

@@ -113,6 +113,7 @@
<ClCompile Include="$(SrcDir)do_wear.c" />
<ClCompile Include="$(SrcDir)drawing.c" />
<ClCompile Include="$(SrcDir)dungeon.c" />
<ClCompile Include="$(SrcDir)earlyarg.c" />
<ClCompile Include="$(SrcDir)eat.c" />
<ClCompile Include="$(SrcDir)end.c" />
<ClCompile Include="$(SrcDir)engrave.c" />

View File

@@ -135,6 +135,7 @@
<ClCompile Include="$(SrcDir)do_wear.c" />
<ClCompile Include="$(SrcDir)drawing.c" />
<ClCompile Include="$(SrcDir)dungeon.c" />
<ClCompile Include="$(SrcDir)earlyarg.c" />
<ClCompile Include="$(SrcDir)eat.c" />
<ClCompile Include="$(SrcDir)end.c" />
<ClCompile Include="$(SrcDir)engrave.c" />