diff --git a/Cross-compiling b/Cross-compiling index 43155a024..285e824b5 100644 --- a/Cross-compiling +++ b/Cross-compiling @@ -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, diff --git a/include/extern.h b/include/extern.h index a3cc23213..cf20ca090 100644 --- a/include/extern.h +++ b/include/extern.h @@ -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); diff --git a/include/mcastu.h b/include/mcastu.h index dd1e37420..a4491bf75 100644 --- a/include/mcastu.h +++ b/include/mcastu.h @@ -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), diff --git a/src/allmain.c b/src/allmain.c index 4e0021eaf..e63db5826 100644 --- a/src/allmain.c +++ b/src/allmain.c @@ -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*/ diff --git a/src/earlyarg.c b/src/earlyarg.c new file mode 100755 index 000000000..e0fd2a56b --- /dev/null +++ b/src/earlyarg.c @@ -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*/ diff --git a/sys/msdos/Makefile.GCC b/sys/msdos/Makefile.GCC index 17d3a8bd8..782e1cd5c 100644 --- a/sys/msdos/Makefile.GCC +++ b/sys/msdos/Makefile.GCC @@ -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) diff --git a/sys/unix/Makefile.src b/sys/unix/Makefile.src index 861afc2d3..46dca7f71 100644 --- a/sys/unix/Makefile.src +++ b/sys/unix/Makefile.src @@ -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) diff --git a/sys/vms/Makefile.src b/sys/vms/Makefile.src index 9cf3f465f..20ee1643f 100644 --- a/sys/vms/Makefile.src +++ b/sys/vms/Makefile.src @@ -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) diff --git a/sys/vms/Makefile_src.vms b/sys/vms/Makefile_src.vms index 473116e81..74f22ea55 100644 --- a/sys/vms/Makefile_src.vms +++ b/sys/vms/Makefile_src.vms @@ -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 diff --git a/sys/windows/GNUmakefile b/sys/windows/GNUmakefile index d4cbafead..3ea5c777b 100644 --- a/sys/windows/GNUmakefile +++ b/sys/windows/GNUmakefile @@ -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 \ diff --git a/sys/windows/Makefile.nmake b/sys/windows/Makefile.nmake index dacee7775..9fd673698 100644 --- a/sys/windows/Makefile.nmake +++ b/sys/windows/Makefile.nmake @@ -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) diff --git a/sys/windows/vs/NetHack/NetHack.vcxproj b/sys/windows/vs/NetHack/NetHack.vcxproj index 72d8986b0..131a4cf05 100644 --- a/sys/windows/vs/NetHack/NetHack.vcxproj +++ b/sys/windows/vs/NetHack/NetHack.vcxproj @@ -113,6 +113,7 @@ + diff --git a/sys/windows/vs/NetHackW/NetHackW.vcxproj b/sys/windows/vs/NetHackW/NetHackW.vcxproj index ba3b21b1e..fce2d2a1d 100644 --- a/sys/windows/vs/NetHackW/NetHackW.vcxproj +++ b/sys/windows/vs/NetHackW/NetHackW.vcxproj @@ -135,6 +135,7 @@ +