This helps avoid a potential chicken-and-egg scenario
with the system configuration file (sysconf).
If sysconf wasn't accessible at the expected location, it
caused an immediate exit, without relaying any helpful
information. That happened even when using:
'nethack --showpaths'
That's particularly unhelpful, because the --showpaths
output might have been useful towards understanding where
NetHack was looking for such things.
That left you without an easy recourse to identify where
the game is looking for the sysconf file. That might be
especially troublesome if you didn't build the game
yourself.
1241 lines
36 KiB
C
1241 lines
36 KiB
C
/* NetHack 3.7 decl.c $NHDT-Date: 1725138480 2024/08/31 21:08:00 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.337 $ */
|
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
|
/*-Copyright (c) Michael Allison, 2009. */
|
|
/* NetHack may be freely redistributed. See license for details. */
|
|
|
|
#include "hack.h"
|
|
|
|
const char * const nhcb_name[NUM_NHCB] = {
|
|
"cmd_before",
|
|
"level_enter",
|
|
"level_leave",
|
|
"end_turn",
|
|
};
|
|
|
|
int nhcb_counts[NUM_NHCB] = DUMMY;
|
|
NEARDATA const struct c_color_names c_color_names = {
|
|
"black", "amber", "golden", "light blue", "red", "green",
|
|
"silver", "blue", "purple", "white", "orange"
|
|
};
|
|
const char *c_obj_colors[] = {
|
|
"black", /* CLR_BLACK */
|
|
"red", /* CLR_RED */
|
|
"green", /* CLR_GREEN */
|
|
"brown", /* CLR_BROWN */
|
|
"blue", /* CLR_BLUE */
|
|
"magenta", /* CLR_MAGENTA */
|
|
"cyan", /* CLR_CYAN */
|
|
"gray", /* CLR_GRAY */
|
|
"transparent", /* no_color */
|
|
"orange", /* CLR_ORANGE */
|
|
"bright green", /* CLR_BRIGHT_GREEN */
|
|
"yellow", /* CLR_YELLOW */
|
|
"bright blue", /* CLR_BRIGHT_BLUE */
|
|
"bright magenta", /* CLR_BRIGHT_MAGENTA */
|
|
"bright cyan", /* CLR_BRIGHT_CYAN */
|
|
"white", /* CLR_WHITE */
|
|
};
|
|
|
|
const struct c_common_strings c_common_strings =
|
|
{ "Nothing happens.",
|
|
"Nothing seems to happen.",
|
|
"That's enough tries!",
|
|
"That is a silly thing to %s.",
|
|
"shudder for a moment.",
|
|
"something",
|
|
"Something",
|
|
"You can move again.",
|
|
"Never mind.",
|
|
"vision quickly clears.",
|
|
{ "the", "your" },
|
|
{ "mon", "you" }
|
|
};
|
|
|
|
static const struct savefile_info default_sfinfo = {
|
|
#ifdef NHSTDC
|
|
0x00000000UL
|
|
#else
|
|
0x00000000L
|
|
#endif
|
|
#if defined(COMPRESS) || defined(ZLIB_COMP)
|
|
| SFI1_EXTERNALCOMP
|
|
#endif
|
|
#if defined(ZEROCOMP)
|
|
| SFI1_ZEROCOMP
|
|
#endif
|
|
#if defined(RLECOMP)
|
|
| SFI1_RLECOMP
|
|
#endif
|
|
,
|
|
#ifdef NHSTDC
|
|
0x00000000UL, 0x00000000UL
|
|
#else
|
|
0x00000000L, 0x00000000L
|
|
#endif
|
|
};
|
|
|
|
const char disclosure_options[] = "iavgco";
|
|
char emptystr[] = {0}; /* non-const */
|
|
|
|
NEARDATA struct flag flags; /* extern declaration is in flag.h, not decl.h */
|
|
|
|
/* Global windowing data, defined here for multi-window-system support */
|
|
#ifdef WIN32
|
|
boolean fqn_prefix_locked[PREFIX_COUNT] = { FALSE, FALSE, FALSE,
|
|
FALSE, FALSE, FALSE,
|
|
FALSE, FALSE, FALSE,
|
|
FALSE };
|
|
#endif
|
|
#ifdef PREFIXES_IN_USE
|
|
const char *fqn_prefix_names[PREFIX_COUNT] = {
|
|
"hackdir", "leveldir", "savedir", "bonesdir", "datadir",
|
|
"scoredir", "lockdir", "sysconfdir", "configdir", "troubledir"
|
|
};
|
|
#endif
|
|
|
|
/* used by coloratt.c, options.c, utf8map.c, windows.c */
|
|
const char hexdd[33] = "00112233445566778899aAbBcCdDeEfF";
|
|
|
|
/* x/y/z deltas for the 10 movement directions (8 compass pts, 2 down/up) */
|
|
const schar xdir[N_DIRS_Z] = { -1, -1, 0, 1, 1, 1, 0, -1, 0, 0 };
|
|
const schar ydir[N_DIRS_Z] = { 0, -1, -1, -1, 0, 1, 1, 1, 0, 0 };
|
|
const schar zdir[N_DIRS_Z] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 };
|
|
/* reordered directions, cardinals first */
|
|
const schar dirs_ord[N_DIRS] =
|
|
{ DIR_W, DIR_N, DIR_E, DIR_S, DIR_NW, DIR_NE, DIR_SE, DIR_SW };
|
|
|
|
NEARDATA boolean has_strong_rngseed = FALSE;
|
|
struct engr *head_engr;
|
|
NEARDATA struct instance_flags iflags;
|
|
NEARDATA struct accessibility_data a11y;
|
|
/* NOTE: the order of these words exactly corresponds to the
|
|
order of oc_material values #define'd in objclass.h. */
|
|
const char *materialnm[] = { "mysterious", "liquid", "wax", "organic",
|
|
"flesh", "paper", "cloth", "leather",
|
|
"wooden", "bone", "dragonhide", "iron",
|
|
"metal", "copper", "silver", "gold",
|
|
"platinum", "mithril", "plastic", "glass",
|
|
"gemstone", "stone" };
|
|
const char quitchars[] = " \r\n\033";
|
|
NEARDATA struct savefile_info sfcap, sfrestinfo, sfsaveinfo;
|
|
const int shield_static[SHIELD_COUNT] = {
|
|
S_ss1, S_ss2, S_ss3, S_ss2, S_ss1, S_ss2, S_ss4, /* 7 per row */
|
|
S_ss1, S_ss2, S_ss3, S_ss2, S_ss1, S_ss2, S_ss4,
|
|
S_ss1, S_ss2, S_ss3, S_ss2, S_ss1, S_ss2, S_ss4,
|
|
};
|
|
NEARDATA struct you u;
|
|
NEARDATA time_t ubirthday;
|
|
NEARDATA struct u_realtime urealtime;
|
|
NEARDATA struct obj *uwep, *uarm, *uswapwep,
|
|
*uquiver, /* quiver */
|
|
*uarmu, /* under-wear, so to speak */
|
|
*uskin, /* dragon armor, if a dragon */
|
|
*uarmc, *uarmh, *uarms, *uarmg,*uarmf, *uamul,
|
|
*uright, *uleft, *ublindf, *uchain, *uball;
|
|
const char vowels[] = "aeiouAEIOU";
|
|
NEARDATA winid WIN_MESSAGE, WIN_STATUS, WIN_MAP, WIN_INVEN;
|
|
const char ynchars[] = "yn";
|
|
const char ynqchars[] = "ynq";
|
|
const char ynaqchars[] = "ynaq";
|
|
const char ynNaqchars[] = "yn#aq";
|
|
const char rightleftchars[] = "rl";
|
|
const char hidespinchars[] = "hsq";
|
|
NEARDATA long yn_number = 0L;
|
|
|
|
#ifdef PANICTRACE
|
|
const char *ARGV0;
|
|
#endif
|
|
|
|
#define IVMAGIC 0xdeadbeef
|
|
|
|
static const struct Role urole_init_data = {
|
|
{ "Undefined", 0 },
|
|
{ { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
|
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } },
|
|
"L", "N", "C",
|
|
"Xxx", "home", "locate",
|
|
NON_PM, NON_PM, NON_PM, NON_PM, NON_PM, NON_PM, NON_PM,
|
|
0, 0, 0, 0,
|
|
/* Str Int Wis Dex Con Cha */
|
|
{ 7, 7, 7, 7, 7, 7 },
|
|
{ 20, 15, 15, 20, 20, 10 },
|
|
/* Init Lower Higher */
|
|
{ 10, 0, 0, 8, 1, 0 }, /* Hit points */
|
|
{ 2, 0, 0, 2, 0, 3 },
|
|
14, /* Energy */
|
|
0,
|
|
10,
|
|
0,
|
|
0,
|
|
4,
|
|
A_INT,
|
|
0,
|
|
-3
|
|
};
|
|
|
|
static const struct Race urace_init_data = {
|
|
"something",
|
|
"undefined",
|
|
"something",
|
|
"Xxx",
|
|
{ 0, 0 },
|
|
NON_PM,
|
|
NON_PM,
|
|
NON_PM,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/* Str Int Wis Dex Con Cha */
|
|
{ 3, 3, 3, 3, 3, 3 },
|
|
{ STR18(100), 18, 18, 18, 18, 18 },
|
|
/* Init Lower Higher */
|
|
{ 2, 0, 0, 2, 1, 0 }, /* Hit points */
|
|
{ 1, 0, 2, 0, 2, 0 } /* Energy */
|
|
};
|
|
|
|
struct display_hints disp = { 0 };
|
|
|
|
static const struct instance_globals_a g_init_a = {
|
|
/* artifact.c */
|
|
/* decl.c */
|
|
UNDEFINED_PTR, /* afternmv */
|
|
/* detect.c */
|
|
0, /* already_found_flag */
|
|
/* do.c */
|
|
FALSE, /* at_ladder */
|
|
/* dog.c */
|
|
UNDEFINED_PTR, /* apelist */
|
|
/* end.c */
|
|
{ UNDEFINED_VALUES }, /* amulets */
|
|
/* mon.c */
|
|
UNDEFINED_PTR, /* animal_list */
|
|
UNDEFINED_VALUE, /* animal_list_count */
|
|
#ifdef CHANGE_COLOR
|
|
/* options.c */
|
|
{ 0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U,
|
|
0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U }, /* altpalette[CLR_MAX] */
|
|
#endif
|
|
/* pickup.c */
|
|
0, /* A_first_hint */
|
|
0, /* A_second_hint */
|
|
UNDEFINED_VALUE, /* abort_looting */
|
|
/* shk.c */
|
|
FALSE, /* auto_credit */
|
|
/* sounds.c */
|
|
soundlib_nosound, /* enum soundlib_ids active_soundlib */
|
|
|
|
/* trap.c */
|
|
{ 0, 0, FALSE }, /* acid_ctx */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* a_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_b g_init_b = {
|
|
/* botl.c */
|
|
{ { { NULL, NULL, 0L, FALSE, FALSE, 0, 0U, { 0 }, { 0 }, NULL, 0, 0, 0
|
|
#ifdef STATUS_HILITES
|
|
, UNDEFINED_PTR, UNDEFINED_PTR
|
|
#endif
|
|
} }
|
|
}, /* blstats */
|
|
FALSE, /* blinit */
|
|
#ifdef STATUS_HILITES
|
|
0L, /* bl_hilite_moves */
|
|
#endif
|
|
/* decl.c */
|
|
{ 0, 0 }, /* bhitpos */
|
|
UNDEFINED_PTR, /* billobjs */
|
|
/* files.c */
|
|
BONESINIT, /* bones */
|
|
/* hack.c */
|
|
0U, /* bldrpush_oid - last boulder pushed */
|
|
0L, /* bldrpushtime - turn message was given about pushing that boulder */
|
|
/* mkmaze.c */
|
|
{ {COLNO, ROWNO, 0, 0}, {COLNO, ROWNO, 0, 0},
|
|
FALSE, FALSE, 0, 0, { 0 } }, /* bughack */
|
|
/* pickup.c */
|
|
FALSE, /* bucx_filter */
|
|
/* zap.c */
|
|
NULL, /* buzzer -- monst that zapped/cast/breathed to initiate buzz() */
|
|
FALSE, /* bot_disabled */
|
|
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* b_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_c g_init_c = {
|
|
UNDEFINED_VALUES, /* command_queue */
|
|
/* botl.c */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0 }, /* cond_hilites */
|
|
0, /* condmenu_sortorder */
|
|
/* cmd.c */
|
|
UNDEFINED_VALUES, /* Cmd */
|
|
{ 0, 0 }, /* clicklook_cc */
|
|
/* decl.c */
|
|
UNDEFINED_VALUES, /* chosen_windowtype */
|
|
0, /* cmd_key */
|
|
0L, /* command_count */
|
|
UNDEFINED_PTR, /* current_wand */
|
|
#ifdef DEF_PAGER
|
|
NULL, /* catmore */
|
|
#endif
|
|
/* dog.c */
|
|
DUMMY, /* catname */
|
|
/* end.c */
|
|
NULL, /* crash_email */
|
|
NULL, /* crash_name */
|
|
-1, /* crash_urlmax */
|
|
/* symbols.c */
|
|
0, /* currentgraphics */
|
|
/* files.c */
|
|
NULL, /* cmdline_rcfile */
|
|
NULL, /* config_section_chosen */
|
|
NULL, /* config_section_current */
|
|
FALSE, /* chosen_symset_start */
|
|
FALSE, /* chosen_symset_end */
|
|
/* invent.c */
|
|
WIN_ERR, /* cached_pickinv_win */
|
|
0, /* core_invent_state */
|
|
/* options.c */
|
|
NULL, /* cmdline_windowsys */
|
|
(struct menucoloring *) 0, /* color_colorings */
|
|
/* pickup.c */
|
|
(struct obj *) 0, /* current_container */
|
|
FALSE, /* class_filter */
|
|
/* questpgr.c */
|
|
UNDEFINED_VALUES, /* cvt_buf */
|
|
/* sounds.c */
|
|
soundlib_nosound, /* chosen_soundlib */
|
|
UNDEFINED_PTR, /* coder */
|
|
/* uhitm.c */
|
|
NON_PM, /* corpsenm_digested */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* c_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_d g_init_d = {
|
|
/* decl.c */
|
|
0, /* doorindex */
|
|
0L, /* done_money */
|
|
0L, /* domove_attempting */
|
|
0L, /* domove_succeeded */
|
|
FALSE, /* defer_see_monsters */
|
|
/* dig.c */
|
|
UNDEFINED_VALUE, /* did_dig_msg */
|
|
/* do.c */
|
|
NULL, /* dfr_pre_msg */
|
|
NULL, /* dfr_post_msg */
|
|
0, /* did_nothing_flag */
|
|
/* dog.c */
|
|
DUMMY, /* dogname */
|
|
/* end.c */
|
|
0L, /* done_seq */
|
|
/* mon.c */
|
|
FALSE, /* disintegested */
|
|
/* objname.c */
|
|
0, /* distantname */
|
|
/* pickup.c */
|
|
FALSE, /* decor_fumble_override */
|
|
FALSE, /* decor_levitate_override */
|
|
FALSE, /* deferred_showpaths */
|
|
NULL, /* deferred_showpaths_dir */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* d_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_e g_init_e = {
|
|
/* cmd.c */
|
|
WIN_ERR, /* en_win */
|
|
FALSE, /* en_via_menu */
|
|
UNDEFINED_VALUE, /* ext_tlist */
|
|
/* eat.c */
|
|
NULL, /* eatmbuf */
|
|
/* mkmaze.c */
|
|
UNDEFINED_PTR, /* ebubbles */
|
|
/* new */
|
|
0, /* early_raw_messages */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* e_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_f g_init_f = {
|
|
/* decl.c */
|
|
UNDEFINED_PTR, /* ftrap */
|
|
{ NULL }, /* fqn_prefix */
|
|
NULL, /* ffruit */
|
|
/* eat.c */
|
|
FALSE, /* force_save_hs */
|
|
/* mhitm.c */
|
|
FALSE, /* far_noise */
|
|
/* rumors.c */
|
|
0L, /* false_rumor_size */
|
|
0UL, /* false_rumor_start*/
|
|
0L, /* false_rumor_end */
|
|
/* shk.c */
|
|
0L, /* followmsg */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* f_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_g g_init_g = {
|
|
/* display.c */
|
|
{ { { 0 } } }, /* gbuf */
|
|
UNDEFINED_VALUES, /* gbuf_start */
|
|
UNDEFINED_VALUES, /* gbug_stop */
|
|
|
|
/* do_name.c */
|
|
0, 0, /* getposx, getposy */
|
|
UNDEFINED_PTR, /* gloc_filter_map */
|
|
UNDEFINED_VALUE, /* gloc_filter_floodfill_match_glyph */
|
|
/* dog.c */
|
|
UNDEFINED_VALUE, /* gtyp */
|
|
0, /* gx */
|
|
0, /* gy */
|
|
/* dokick.c */
|
|
NULL, /* gate_str */
|
|
/* end.c */
|
|
{ UNDEFINED_VALUES }, /* gems */
|
|
/* invent.c */
|
|
0L, /* glyph_reset_timestamp */
|
|
/* nhlua.c */
|
|
FALSE, /* gmst_stored */
|
|
0L, /* gmst_moves */
|
|
NULL, /* gmst_invent */
|
|
NULL, NULL, NULL, /* gmst_ubak, gmst_disco, gmst_mvitals */
|
|
/* pline.c */
|
|
UNDEFINED_PTR, /* gamelog */
|
|
/* region.c */
|
|
FALSE, /* gas_cloud_diss_within */
|
|
0, /* gas_cloud_diss_seen */
|
|
/* new */
|
|
/* per-level glyph mapping flags */
|
|
0L, /* glyphmap_perlevel_flags */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* g_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_h g_init_h = {
|
|
/* decl.c */
|
|
NULL, /* hname */
|
|
#if defined(MICRO) || defined(WIN32)
|
|
UNDEFINED_VALUES, /* hackdir */
|
|
#endif /* MICRO || WIN32 */
|
|
1L << 3, /* hero_seq: sequence number for hero movement, 'moves*8 + n'
|
|
* where n is usually 1, sometimes 2 when Fast/Very_fast, maybe
|
|
* higher if polymorphed into something that's even faster */
|
|
/* dog.c */
|
|
DUMMY, /* horsename */
|
|
/* mhitu.c */
|
|
0U, /* hitmsg_mid */
|
|
NULL, /* hitmsg_prev */
|
|
/* save.c */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* h_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_i g_init_i = {
|
|
/* decl.c */
|
|
0, /* in_doagain */
|
|
FALSE, /* in_mklev */
|
|
FALSE, /* in_steed_dismounting */
|
|
UNDEFINED_PTR, /* invent */
|
|
/* do_wear.c */
|
|
FALSE, /* initial_don */
|
|
/* invent.c */
|
|
NULL, /* invbuf */
|
|
0U, /* invbufsize */
|
|
0, /* in_sync_perminvent */
|
|
/* mon.c */
|
|
NULL, /* itermonarr */
|
|
/* restore.c */
|
|
UNDEFINED_PTR, /* id_map */
|
|
/* sp_lev.c */
|
|
FALSE, /* in_mk_themerooms */
|
|
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* i_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_j g_init_j = {
|
|
/* apply.c */
|
|
0, /* jumping_is_magic */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* j_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_k g_init_k = {
|
|
{ 0, 0 }, /* kickedloc */
|
|
/* decl.c */
|
|
UNDEFINED_PTR, /* kickedobj */
|
|
/* read.c */
|
|
UNDEFINED_VALUE, /* known */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* k_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_l g_init_l = {
|
|
/* cmd.c */
|
|
UNDEFINED_VALUE, /* last_command_count */
|
|
/* decl.c */
|
|
#if defined(UNIX) || defined(VMS)
|
|
0, /* locknum */
|
|
#endif
|
|
#ifdef MICRO
|
|
UNDEFINED_VALUES, /* levels */
|
|
#endif /* MICRO */
|
|
/* files.c */
|
|
UNDEFINED_VALUE, /* lockptr */
|
|
LOCKNAMEINIT, /* lock */
|
|
/* invent.c */
|
|
51, /* lastinvr */
|
|
/* light.c */
|
|
UNDEFINED_PTR, /* light_base */
|
|
/* mklev.c */
|
|
{ UNDEFINED_PTR }, /* luathemes[] */
|
|
/* mon.c */
|
|
0U, /* last_hider */
|
|
/* nhlan.c */
|
|
#ifdef MAX_LAN_USERNAME
|
|
UNDEFINED_VALUES, /* lusername */
|
|
MAX_LAN_USERNAME, /* lusername_size */
|
|
#endif /* MAX_LAN_USERNAME */
|
|
/* nhlua.c */
|
|
UNDEFINED_VALUE, /* luacore */
|
|
DUMMY, /* lua_warnbuf[] */
|
|
0, /* loglua */
|
|
0, /* lua_sid */
|
|
/* options.c */
|
|
FALSE, /* loot_reset_justpicked */
|
|
/* save.c */
|
|
(struct obj *) 0, /* looseball */
|
|
(struct obj *) 0, /* loosechain */
|
|
/* sp_lev.c */
|
|
NULL, /* lev_message */
|
|
UNDEFINED_PTR, /* lregions */
|
|
/* trap.c */
|
|
{ UNDEFINED_PTR, 0, 0 }, /* launchplace */
|
|
/* windows.c */
|
|
UNDEFINED_PTR, /* last_winchoice */
|
|
/* new */
|
|
DUMMY, /* lua_ver[LUA_VER_BUFSIZ] */
|
|
DUMMY, /* lua_copyright[LUA_COPYRIGHT_BUFSIZ] */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* l_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_m g_init_m = {
|
|
/* apply.c */
|
|
0, /* mkot_trap_warn_count */
|
|
/* botl.c */
|
|
0, /* mrank_sz */
|
|
/* decl.c */
|
|
0, /* multi */
|
|
NULL, /* multi_reason */
|
|
/* multi_reason usually points to a string literal (when not Null)
|
|
but multireasonbuf[] is available for when it needs to be dynamic */
|
|
DUMMY, /* multireasonbuf[] */
|
|
{ 0, 0, STRANGE_OBJECT, FALSE }, /* m_shot */
|
|
FALSE, /* mrg_to_wielded */
|
|
UNDEFINED_PTR, /* menu_colorings */
|
|
UNDEFINED_PTR, /* migrating_objs */
|
|
/* dog.c */
|
|
UNDEFINED_PTR, /* mydogs */
|
|
UNDEFINED_PTR, /* migrating_mons */
|
|
/* dokick.c */
|
|
UNDEFINED_PTR, /* maploc */
|
|
/* mhitu.c */
|
|
UNDEFINED_VALUE, /* mhitu_dieroll */
|
|
/* mklev.c */
|
|
FALSE, /* made_branch */
|
|
/* mkmap.c */
|
|
UNDEFINED_VALUE, /* min_rx */
|
|
UNDEFINED_VALUE, /* max_rx */
|
|
UNDEFINED_VALUE, /* min_ry */
|
|
UNDEFINED_VALUE, /* max_ry */
|
|
/* mkobj.c */
|
|
FALSE, /* mkcorpstat_norevive */
|
|
/* mthrowu.c */
|
|
UNDEFINED_VALUE, /* mesg_given */
|
|
UNDEFINED_PTR, /* mtarget */
|
|
UNDEFINED_PTR, /* marcher */
|
|
/* muse.c */
|
|
FALSE, /* m_using */
|
|
UNDEFINED_VALUES, /* m */
|
|
/* options.c */
|
|
UNDEFINED_VALUES, /* mapped_menu_cmds */
|
|
UNDEFINED_VALUES, /* mapped_menu_op */
|
|
/* region.c */
|
|
0, /* max_regions */
|
|
/* trap.c */
|
|
FALSE, /* mentioned_water */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* m_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_n g_init_n = {
|
|
/* botl.c */
|
|
0, /* now_or_before_idx */
|
|
/* decl.c */
|
|
NULL, /* nomovemsg */
|
|
0, /* nsubroom */
|
|
/* dokick.c */
|
|
UNDEFINED_VALUES, /* nowhere */
|
|
/* files.c */
|
|
0, /* nesting */
|
|
0, /* no_sound_notified */
|
|
/* mhitm.c */
|
|
0L, /* noisetime */
|
|
/* mkmap.c */
|
|
UNDEFINED_PTR, /* new_locations */
|
|
UNDEFINED_VALUE, /* n_loc_filled */
|
|
/* options.c */
|
|
0, /* n_menu_mapped */
|
|
/* potion.c */
|
|
FALSE, /* notonhead */
|
|
/* questpgr.c */
|
|
UNDEFINED_VALUES, /* nambuf */
|
|
/* restore.c */
|
|
0, /* n_ids_mapped */
|
|
/* sp_lev.c */
|
|
0, /* num_lregions */
|
|
/* u_init.c */
|
|
STRANGE_OBJECT, /* nocreate */
|
|
STRANGE_OBJECT, /* nocreate2 */
|
|
STRANGE_OBJECT, /* nocreate3 */
|
|
STRANGE_OBJECT, /* nocreate4 */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* n_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_o g_init_o = {
|
|
NULL, /* objs_deleted */
|
|
/* dbridge.c */
|
|
{ { 0 } }, /* occupants */
|
|
/* decl.c */
|
|
UNDEFINED_PTR, /* occupation */
|
|
0, /* occtime */
|
|
UNDEFINED_VALUE, /* otg_temp */
|
|
NULL, /* otg_otmp */
|
|
NULL, /* occtxt */
|
|
/* symbols.c */
|
|
DUMMY, /* ov_primary_syms */
|
|
DUMMY, /* ov_rogue_syms */
|
|
/* invent.c */
|
|
UNDEFINED_VALUES, /* only (coord) */
|
|
/* o_init.c */
|
|
DUMMY, /* oclass_prob_totals */
|
|
/* options.c */
|
|
0, /* opt_phase */
|
|
FALSE, /* opt_initial */
|
|
FALSE, /* opt_from_file */
|
|
FALSE, /* opt_need_redraw */
|
|
FALSE, /* opt_need_glyph_reset */
|
|
FALSE, /* opt_need_promptstyle */
|
|
FALSE, /* opt_reset_customcolors */
|
|
FALSE, /* opt_reset_customsymbols */
|
|
FALSE, /* opt_update_basic_palette */
|
|
FALSE, /* opt_symset_changed */
|
|
/* pickup.c */
|
|
0, /* oldcap */
|
|
/* restore.c */
|
|
UNDEFINED_PTR, /* oldfruit */
|
|
0L, /* omoves */
|
|
/* rumors.c */
|
|
0, /* oracle_flag */
|
|
UNDEFINED_PTR, /* oracle_loc */
|
|
/* uhitm.c */
|
|
FALSE, /* override_confirmation */
|
|
/* zap.c */
|
|
FALSE, /* obj_zapped */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* o_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_p g_init_p = {
|
|
/* apply.c */
|
|
-1, /* polearm_range_min */
|
|
-1, /* polearm_range_max */
|
|
/* decl.c */
|
|
0, /* plnamelen */
|
|
'\0', /* pl_race */
|
|
UNDEFINED_PTR, /* plinemsg_types */
|
|
/* dog.c */
|
|
0, /* petname_used */
|
|
UNDEFINED_VALUE, /* preferred_pet */
|
|
/* symbols.c */
|
|
DUMMY, /* primary_syms */
|
|
/* invent.c */
|
|
0, /* perm_invent_toggling_direction */
|
|
/* pickup.c */
|
|
FALSE, /* picked_filter */
|
|
0, /* pickup_encumbrance */
|
|
/* pline.c */
|
|
0U, /* pline_flags */
|
|
UNDEFINED_VALUES, /* prevmsg */
|
|
/* potion.c */
|
|
UNDEFINED_VALUE, /* potion_nothing */
|
|
UNDEFINED_VALUE, /* potion_unkn */
|
|
/* pray.c */
|
|
UNDEFINED_VALUE, /* p_aligntyp */
|
|
UNDEFINED_VALUE, /* p_trouble */
|
|
UNDEFINED_VALUE, /* p_type */
|
|
/* weapon.c */
|
|
UNDEFINED_PTR, /* propellor */
|
|
/* zap.c */
|
|
UNDEFINED_VALUE, /* poly_zap */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* p_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_q g_init_q = {
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* q_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_r g_init_r = {
|
|
/* symbols.c */
|
|
DUMMY, /* rogue_syms */
|
|
/* extralev.c */
|
|
{ { UNDEFINED_VALUES } }, /* r */
|
|
/* mkmaze.c */
|
|
FALSE, /* ransacked */
|
|
/* region.c */
|
|
UNDEFINED_PTR, /* regions */
|
|
/* rip.c */
|
|
UNDEFINED_PTR, /* rip */
|
|
/* role.c */
|
|
UNDEFINED_VALUES, /* role_pa */
|
|
UNDEFINED_VALUE, /* role_post_attrib */
|
|
{ { 0 }, 0 }, /* rfilter */
|
|
/* shk.c */
|
|
UNDEFINED_VALUES, /* repo */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* r_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_s g_init_s = {
|
|
/* artifact.c */
|
|
0, /* spec_dbon_applies */
|
|
/* decl.c */
|
|
UNDEFINED_PTR, /* stairs */
|
|
DUMMY, /* smeq */
|
|
FALSE, /* stoned */
|
|
UNDEFINED_PTR, /* subrooms */
|
|
/* do.c */
|
|
{ 0, 0 }, /* save_dlevel */
|
|
/* symbols.c */
|
|
{ DUMMY }, /* symset */
|
|
{ { { 0 } }, { { 0 } } }, /* symset_customizations */
|
|
DUMMY, /* showsyms */
|
|
/* files.c */
|
|
0, /* symset_count */
|
|
0, /* symset_which_set */
|
|
DUMMY, /* SAVEF */
|
|
#ifdef MICRO
|
|
DUMMY, /* SAVEP */
|
|
#endif
|
|
/* invent.c */
|
|
0, /* sortloogmode */
|
|
/* mhitm.c */
|
|
FALSE, /* skipdrin */
|
|
/* mon.c */
|
|
FALSE, /* somebody_can_move */
|
|
/* options.c */
|
|
(struct symsetentry *) 0, /* symset_list */
|
|
FALSE, /* save_menucolors */
|
|
(struct menucoloring *) 0, /* save_colorings */
|
|
FALSE, /* simple_options_help */
|
|
/* pickup.c */
|
|
FALSE, /* sellobj_first */
|
|
FALSE, /* shop_filter */
|
|
/* pline.c */
|
|
#ifdef DUMPLOG_CORE
|
|
0U, /* saved_pline_index */
|
|
{ NULL }, /* saved_plines */
|
|
#endif
|
|
/* polyself.c */
|
|
0, /* sex_change_ok */
|
|
/* shk.c */
|
|
'a', /* sell_response */
|
|
SELL_NORMAL, /* sell_how */
|
|
/* spells.c */
|
|
0, /* spl_sortmode */
|
|
UNDEFINED_PTR, /* spl_orderindx */
|
|
/* steal.c */
|
|
0U, /* stealoid */
|
|
0U, /* stealmid */
|
|
/* vision.c */
|
|
0, /* seethru */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* s_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_t g_init_t = {
|
|
/* apply.c */
|
|
UNDEFINED_VALUES, /* trapinfo */
|
|
/* decl.c */
|
|
0, /* tbx */
|
|
0, /* tby */
|
|
UNDEFINED_VALUES, /* toplines */
|
|
UNDEFINED_PTR, /* thrownobj */
|
|
DUMMY, /* tc_gbl_data */
|
|
/* hack.c */
|
|
UNDEFINED_VALUES, /* tmp_anything */
|
|
UNDEFINED_PTR, /* travelmap */
|
|
/* invent.c */
|
|
0, /* this_type */
|
|
NULL, /* this_title */
|
|
/* muse.c */
|
|
UNDEFINED_VALUE, /* trapx */
|
|
UNDEFINED_VALUE, /* trapy */
|
|
/* rumors.c */
|
|
0L, /* true_rumor_size */
|
|
0UL, /* true_rumor_start*/
|
|
0L, /* true_rumor_end */
|
|
/* sp_lev.c */
|
|
FALSE, /* themeroom_failed */
|
|
/* timeout.c */
|
|
UNDEFINED_PTR, /* timer_base */
|
|
/* topten.c */
|
|
WIN_ERR, /* toptenwin */
|
|
/* uhitm.c */
|
|
0, /* twohits */
|
|
/**/
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* t_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_u g_init_u = {
|
|
/* botl.c */
|
|
FALSE, /* update_all */
|
|
/* decl.c */
|
|
FALSE, /* unweapon */
|
|
/* role.c */
|
|
UNDEFINED_ROLE, /* urole */
|
|
UNDEFINED_RACE, /* urace */
|
|
/* save.c */
|
|
{ 0, 0 }, /* uz_save */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* u_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_v g_init_v = {
|
|
/* botl.c */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* valset */
|
|
/* end.c */
|
|
{ UNDEFINED_VALUES }, /* valuables */
|
|
/* mhitm.c */
|
|
FALSE, /* vis */
|
|
/* mklev.c */
|
|
UNDEFINED_VALUE, /* vault_x */
|
|
UNDEFINED_VALUE, /* vault_y */
|
|
/* mon.c */
|
|
FALSE, /* vamp_rise_msg */
|
|
/* pickup.c */
|
|
0L, /* val_for_n_or_more */
|
|
UNDEFINED_VALUES, /* valid_menu_classes */
|
|
/* vision.c */
|
|
UNDEFINED_PTR, /* viz_array */
|
|
UNDEFINED_PTR, /* viz_rmin */
|
|
UNDEFINED_PTR, /* viz_rmax */
|
|
FALSE, /* vision_full_recalc */
|
|
UNDEFINED_VALUES, /* voice */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* v_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_w g_init_w = {
|
|
/* decl.c */
|
|
0, /* warn_obj_cnt */
|
|
0L, /* wailmsg */
|
|
/* symbols.c */
|
|
DUMMY, /* warnsyms */
|
|
/* files.c */
|
|
UNDEFINED_VALUES, /* wizkit */
|
|
/* hack.c */
|
|
UNDEFINED_VALUE, /* wc */
|
|
/* mkmaze.c */
|
|
UNDEFINED_PTR, /* wportal */
|
|
/* new */
|
|
{ wdmode_traditional, NO_COLOR }, /* wsettings */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* w_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_x g_init_x = {
|
|
/* decl.c */
|
|
(COLNO - 1) & ~1, /* x_maze_max */
|
|
/* lock.c */
|
|
UNDEFINED_VALUES, /* xlock */
|
|
/* objnam.c */
|
|
NULL, /* xnamep */
|
|
/* sp_lev.c */
|
|
UNDEFINED_VALUE, /* xstart */
|
|
UNDEFINED_VALUE, /* xsize */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* x_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_y g_init_y = {
|
|
/* decl.c */
|
|
(ROWNO - 1) & ~1, /* y_maze_max */
|
|
DUMMY, /* youmonst */
|
|
/* pline.c */
|
|
NULL, /* you_buf */
|
|
0, /* you_buf_siz */
|
|
/* sp_lev.c */
|
|
UNDEFINED_VALUE, /* ystart */
|
|
UNDEFINED_VALUE, /* ysize */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* y_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_z g_init_z = {
|
|
/* mon.c */
|
|
FALSE, /* zombify */
|
|
/* muse.c */
|
|
FALSE, /* zap_oseen */
|
|
TRUE, /* havestate*/
|
|
IVMAGIC /* z_magic to validate that structure layout has been preserved */
|
|
};
|
|
|
|
static const struct instance_globals_saved_b init_svb = {
|
|
/* dungeon.c */
|
|
UNDEFINED_PTR, /* branches */
|
|
/* mkmaze.c */
|
|
UNDEFINED_PTR, /* bbubbles */
|
|
DUMMY /* bases */
|
|
};
|
|
|
|
static const struct instance_globals_saved_c init_svc = {
|
|
/* decl.c */
|
|
DUMMY, /* context */
|
|
};
|
|
|
|
static const struct instance_globals_saved_d init_svd = {
|
|
/* dungeon.c */
|
|
{ { {0},{0},{0},{0}, 0, {0}, 0, 0, 0, 0, 0 } }, /* dungeons */
|
|
{ {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
|
|
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
|
|
0, 0, 0, 0, 0,
|
|
{0}, {0}, {0},
|
|
{0}, {0}, {0} }, /* dungeon_topology */
|
|
/* decl.c */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0 }, /* dndest */
|
|
NULL, /* doors */
|
|
0, /* doors_alloc */
|
|
/* o_init.c */
|
|
DUMMY, /* disco */
|
|
};
|
|
|
|
static const struct instance_globals_saved_e init_sve = {
|
|
/* decl.c */
|
|
NULL /* exclusion_zones */
|
|
};
|
|
|
|
static const struct instance_globals_saved_h init_svh = {
|
|
/* decl.c */
|
|
0 /* hackpid */
|
|
};
|
|
|
|
static const struct instance_globals_saved_i init_svi = {
|
|
/* decl.c */
|
|
{ 0, 0 } /* inv_pos */
|
|
};
|
|
|
|
static const struct instance_globals_saved_k init_svk = {
|
|
/* decl.c */
|
|
DUMMY /* killer */
|
|
};
|
|
|
|
static const struct instance_globals_saved_l init_svl = {
|
|
/* decl.c */
|
|
{ { 0 } }, /* lastseentyp */
|
|
{ { { UNDEFINED_VALUES } }, /* level.locations */
|
|
{ { UNDEFINED_PTR } }, /* level.objects */
|
|
{ { UNDEFINED_PTR } }, /* level.monsters */
|
|
NULL, NULL, NULL, NULL, NULL, {0} }, /* level */
|
|
{ UNDEFINED_VALUES } /* level_info */
|
|
};
|
|
|
|
static const struct instance_globals_saved_m init_svm = {
|
|
/* dungeon.c */
|
|
UNDEFINED_PTR, /* mapseenchn */
|
|
/* decl.c */
|
|
0L, /* moves; misnamed turn counter */
|
|
{ UNDEFINED_VALUES } /* mvitals */
|
|
};
|
|
|
|
static const struct instance_globals_saved_n init_svn = {
|
|
/* dungeon.c */
|
|
0, /* n_dgns */
|
|
/* mkroom.c */
|
|
0, /* nroom */
|
|
/* region.c */
|
|
0 /* n_regions */
|
|
};
|
|
|
|
static const struct instance_globals_saved_o init_svo = {
|
|
/* rumors.c */
|
|
0U /* oracle_cnt */
|
|
};
|
|
|
|
static const struct instance_globals_saved_p init_svp = {
|
|
/* decl.c */
|
|
DUMMY, /* plname */
|
|
DUMMY, /* pl_character */
|
|
DUMMY, /* pl_fruit */
|
|
};
|
|
|
|
static const struct instance_globals_saved_q init_svq = {
|
|
/* quest.c */
|
|
DUMMY /* quest_status */
|
|
};
|
|
|
|
static const struct instance_globals_saved_r init_svr = {
|
|
/* mkroom.c */
|
|
{ DUMMY }, /* rooms */
|
|
};
|
|
|
|
static const struct instance_globals_saved_s init_svs = {
|
|
/* decl.c */
|
|
{ DUMMY }, /* spl_book */
|
|
UNDEFINED_PTR /* sp_levchn */
|
|
};
|
|
|
|
static const struct instance_globals_saved_t init_svt = {
|
|
/* decl.c */
|
|
DUMMY, /* tune */
|
|
/* timeout.c */
|
|
1UL, /* timer_id */
|
|
};
|
|
|
|
static const struct instance_globals_saved_u init_svu = {
|
|
/* decl.c */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0 }, /* updest */
|
|
};
|
|
|
|
static const struct instance_globals_saved_x init_svx = {
|
|
/* mkmaze.c */
|
|
UNDEFINED_VALUE, /* xmin */
|
|
UNDEFINED_VALUE /* xmax */
|
|
};
|
|
|
|
static const struct instance_globals_saved_y init_svy = {
|
|
/* mkmaze.c */
|
|
UNDEFINED_VALUE, /* ymin */
|
|
UNDEFINED_VALUE /* ymax */
|
|
};
|
|
|
|
static const struct sinfo init_program_state = { 0 };
|
|
|
|
#if 0
|
|
struct instance_globals g;
|
|
#endif /* 0 */
|
|
|
|
struct instance_globals_a ga;
|
|
struct instance_globals_b gb;
|
|
struct instance_globals_c gc;
|
|
struct instance_globals_d gd;
|
|
struct instance_globals_e ge;
|
|
struct instance_globals_f gf;
|
|
struct instance_globals_g gg;
|
|
struct instance_globals_h gh;
|
|
struct instance_globals_i gi;
|
|
struct instance_globals_j gj;
|
|
struct instance_globals_k gk;
|
|
struct instance_globals_l gl;
|
|
struct instance_globals_m gm;
|
|
struct instance_globals_n gn;
|
|
struct instance_globals_o go;
|
|
struct instance_globals_p gp;
|
|
struct instance_globals_q gq;
|
|
struct instance_globals_r gr;
|
|
struct instance_globals_s gs;
|
|
struct instance_globals_t gt;
|
|
struct instance_globals_u gu;
|
|
struct instance_globals_v gv;
|
|
struct instance_globals_w gw;
|
|
struct instance_globals_x gx;
|
|
struct instance_globals_y gy;
|
|
struct instance_globals_z gz;
|
|
struct instance_globals_saved_b svb;
|
|
struct instance_globals_saved_c svc;
|
|
struct instance_globals_saved_d svd;
|
|
struct instance_globals_saved_e sve;
|
|
struct instance_globals_saved_h svh;
|
|
struct instance_globals_saved_i svi;
|
|
struct instance_globals_saved_k svk;
|
|
struct instance_globals_saved_l svl;
|
|
struct instance_globals_saved_m svm;
|
|
struct instance_globals_saved_n svn;
|
|
struct instance_globals_saved_o svo;
|
|
struct instance_globals_saved_p svp;
|
|
struct instance_globals_saved_q svq;
|
|
struct instance_globals_saved_r svr;
|
|
struct instance_globals_saved_s svs;
|
|
struct instance_globals_saved_t svt;
|
|
struct instance_globals_saved_u svu;
|
|
struct instance_globals_saved_x svx;
|
|
struct instance_globals_saved_y svy;
|
|
struct sinfo program_state;
|
|
|
|
const struct const_globals cg = {
|
|
DUMMY, /* zeroobj */
|
|
DUMMY, /* zeromonst */
|
|
DUMMY, /* zeroany */
|
|
DUMMY, /* zeroNhRect */
|
|
};
|
|
|
|
#define ZERO(x) memset(&x, 0, sizeof(x))
|
|
|
|
#define MAGICCHECK(xx) \
|
|
do { \
|
|
if ((xx).magic != IVMAGIC) { \
|
|
raw_printf( \
|
|
"decl_globals_init: %s.magic in unexpected state (%lx).", \
|
|
#xx, (xx).magic); \
|
|
exit(1); \
|
|
} \
|
|
if ((xx).havestate != TRUE) { \
|
|
raw_printf( \
|
|
"decl_globals_init: %s.havestate not True.", #xx); \
|
|
exit(1); \
|
|
} \
|
|
} while(0);
|
|
|
|
void
|
|
decl_globals_init(void)
|
|
{
|
|
#if 0
|
|
g = g_init;
|
|
#endif
|
|
ga = g_init_a;
|
|
gb = g_init_b;
|
|
gc = g_init_c;
|
|
gd = g_init_d;
|
|
ge = g_init_e;
|
|
gf = g_init_f;
|
|
gg = g_init_g;
|
|
gh = g_init_h;
|
|
gi = g_init_i;
|
|
gj = g_init_j;
|
|
gk = g_init_k;
|
|
gl = g_init_l;
|
|
gm = g_init_m;
|
|
gn = g_init_n;
|
|
go = g_init_o;
|
|
gp = g_init_p;
|
|
gq = g_init_q;
|
|
gr = g_init_r;
|
|
gs = g_init_s;
|
|
gt = g_init_t;
|
|
gu = g_init_u;
|
|
gv = g_init_v;
|
|
gw = g_init_w;
|
|
gx = g_init_x;
|
|
gy = g_init_y;
|
|
gz = g_init_z;
|
|
svb = init_svb;
|
|
svc = init_svc;
|
|
svd = init_svd;
|
|
sve = init_sve;
|
|
svh = init_svh;
|
|
svi = init_svi;
|
|
svk = init_svk;
|
|
svl = init_svl;
|
|
svm = init_svm;
|
|
svn = init_svn;
|
|
svo = init_svo;
|
|
svp = init_svp;
|
|
svq = init_svq;
|
|
svr = init_svr;
|
|
svs = init_svs;
|
|
svt = init_svt;
|
|
svu = init_svu;
|
|
svx = init_svx;
|
|
svy = init_svy;
|
|
program_state = init_program_state;
|
|
|
|
gv.valuables[0].list = gg.gems;
|
|
gv.valuables[0].size = SIZE(gg.gems);
|
|
gv.valuables[1].list = ga.amulets;
|
|
gv.valuables[1].size = SIZE(ga.amulets);
|
|
gv.valuables[2].list = NULL;
|
|
gv.valuables[2].size = 0;
|
|
|
|
#if 0
|
|
MAGICCHECK(g_init);
|
|
#endif
|
|
MAGICCHECK(g_init_a);
|
|
MAGICCHECK(g_init_b);
|
|
MAGICCHECK(g_init_c);
|
|
MAGICCHECK(g_init_d);
|
|
MAGICCHECK(g_init_e);
|
|
MAGICCHECK(g_init_f);
|
|
MAGICCHECK(g_init_g);
|
|
MAGICCHECK(g_init_h);
|
|
MAGICCHECK(g_init_i);
|
|
MAGICCHECK(g_init_j);
|
|
MAGICCHECK(g_init_k);
|
|
MAGICCHECK(g_init_l);
|
|
MAGICCHECK(g_init_m);
|
|
MAGICCHECK(g_init_n);
|
|
MAGICCHECK(g_init_o);
|
|
MAGICCHECK(g_init_p);
|
|
MAGICCHECK(g_init_q);
|
|
MAGICCHECK(g_init_r);
|
|
MAGICCHECK(g_init_s);
|
|
MAGICCHECK(g_init_t);
|
|
MAGICCHECK(g_init_u);
|
|
MAGICCHECK(g_init_v);
|
|
MAGICCHECK(g_init_w);
|
|
MAGICCHECK(g_init_x);
|
|
MAGICCHECK(g_init_y);
|
|
MAGICCHECK(g_init_z);
|
|
|
|
sfcap = default_sfinfo;
|
|
sfrestinfo = default_sfinfo;
|
|
sfsaveinfo = default_sfinfo;
|
|
|
|
gs.subrooms = &svr.rooms[MAXNROFROOMS + 1];
|
|
|
|
ZERO(flags);
|
|
ZERO(iflags);
|
|
ZERO(a11y);
|
|
ZERO(disp);
|
|
ZERO(u);
|
|
ZERO(ubirthday);
|
|
ZERO(urealtime);
|
|
|
|
uwep = uarm = uswapwep = uquiver = uarmu = uskin = uarmc = NULL;
|
|
uarmh = uarms = uarmg = uarmf = uamul = uright = uleft = NULL;
|
|
ublindf = uchain = uball = NULL;
|
|
|
|
WIN_MESSAGE = WIN_STATUS = WIN_MAP = WIN_INVEN = WIN_ERR;
|
|
|
|
gu.urole = urole_init_data;
|
|
gu.urace = urace_init_data;
|
|
}
|
|
|
|
/* fields in 'hands_obj' don't matter, just its distinct address */
|
|
struct obj hands_obj = DUMMY;
|
|
|
|
/* gcc 12.2's static analyzer thinks that some fields of svc.context.victual
|
|
are uninitialized when compiling 'bite(eat.c)' but that's impossible;
|
|
it is defined at global scope so guaranteed to be given implicit
|
|
initialization for fields that aren't explicitly initialized (all of
|
|
'context'); having bite() pass &svc.context.victual to this no-op
|
|
eliminates the analyzer's very verbose complaint */
|
|
void
|
|
sa_victual(
|
|
volatile struct victual_info *context_victual UNUSED)
|
|
{
|
|
return;
|
|
}
|
|
|
|
/*decl.c*/
|