zeroX, tc_gbl_data and fqn_prefix moved to instance globals.

This commit is contained in:
Bart House
2018-12-25 08:09:37 -08:00
parent 1c65e6afe0
commit 0763046c38
40 changed files with 266 additions and 261 deletions
+21 -17
View File
@@ -176,10 +176,6 @@ E NEARDATA struct obj *uarm, *uarmc, *uarmh, *uarms, *uarmg, *uarmf,
E NEARDATA struct obj *uchain; /* defined only when punished */ E NEARDATA struct obj *uchain; /* defined only when punished */
E NEARDATA struct obj *uball; E NEARDATA struct obj *uball;
E NEARDATA struct obj zeroobj; /* for init; &zeroobj used as special value */
E NEARDATA anything zeroany; /* init'd and defined in decl.c */
#include "you.h" #include "you.h"
E NEARDATA struct you u; E NEARDATA struct you u;
E NEARDATA time_t ubirthday; E NEARDATA time_t ubirthday;
@@ -190,19 +186,20 @@ E NEARDATA struct u_realtime urealtime;
#include "pm.h" #include "pm.h"
#endif #endif
E NEARDATA struct monst zeromonst; /* for init of new or temp monsters */
struct mvitals { struct mvitals {
uchar born; uchar born;
uchar died; uchar died;
uchar mvflags; uchar mvflags;
}; };
E NEARDATA struct c_color_names { struct c_color_names {
const char *const c_black, *const c_amber, *const c_golden, const char *const c_black, *const c_amber, *const c_golden,
*const c_light_blue, *const c_red, *const c_green, *const c_silver, *const c_light_blue, *const c_red, *const c_green, *const c_silver,
*const c_blue, *const c_purple, *const c_white, *const c_orange; *const c_blue, *const c_purple, *const c_white, *const c_orange;
} c_color_names; };
E NEARDATA const struct c_color_names c_color_names;
#define NH_BLACK c_color_names.c_black #define NH_BLACK c_color_names.c_black
#define NH_AMBER c_color_names.c_amber #define NH_AMBER c_color_names.c_amber
#define NH_GOLDEN c_color_names.c_golden #define NH_GOLDEN c_color_names.c_golden
@@ -218,12 +215,15 @@ E NEARDATA struct c_color_names {
/* The names of the colors used for gems, etc. */ /* The names of the colors used for gems, etc. */
E const char *c_obj_colors[]; E const char *c_obj_colors[];
E struct c_common_strings { struct c_common_strings {
const char *const c_nothing_happens, *const c_thats_enough_tries, const char *const c_nothing_happens, *const c_thats_enough_tries,
*const c_silly_thing_to, *const c_shudder_for_moment, *const c_silly_thing_to, *const c_shudder_for_moment,
*const c_something, *const c_Something, *const c_You_can_move_again, *const c_something, *const c_Something, *const c_You_can_move_again,
*const c_Never_mind, *c_vision_clears, *const c_the_your[2]; *const c_Never_mind, *c_vision_clears, *const c_the_your[2];
} c_common_strings; };
E const struct c_common_strings c_common_strings;
#define nothing_happens c_common_strings.c_nothing_happens #define nothing_happens c_common_strings.c_nothing_happens
#define thats_enough_tries c_common_strings.c_thats_enough_tries #define thats_enough_tries c_common_strings.c_thats_enough_tries
#define silly_thing_to c_common_strings.c_silly_thing_to #define silly_thing_to c_common_strings.c_silly_thing_to
@@ -271,10 +271,10 @@ E struct tc_gbl_data { /* also declared in tcap.h */
char *tc_AS, *tc_AE; /* graphics start and end (tty font swapping) */ char *tc_AS, *tc_AE; /* graphics start and end (tty font swapping) */
int tc_LI, tc_CO; /* lines and columns */ int tc_LI, tc_CO; /* lines and columns */
} tc_gbl_data; } tc_gbl_data;
#define AS tc_gbl_data.tc_AS #define AS g.tc_gbl_data.tc_AS
#define AE tc_gbl_data.tc_AE #define AE g.tc_gbl_data.tc_AE
#define LI tc_gbl_data.tc_LI #define LI g.tc_gbl_data.tc_LI
#define CO tc_gbl_data.tc_CO #define CO g.tc_gbl_data.tc_CO
#endif #endif
/* xxxexplain[] is in drawing.c */ /* xxxexplain[] is in drawing.c */
@@ -308,9 +308,8 @@ E const char *const monexplain[], invisexplain[], *const oclass_names[];
#define PREFIXES_IN_USE #define PREFIXES_IN_USE
#endif #endif
E char *fqn_prefix[PREFIX_COUNT];
#ifdef PREFIXES_IN_USE #ifdef PREFIXES_IN_USE
E char *fqn_prefix_names[PREFIX_COUNT]; E const char *fqn_prefix_names[PREFIX_COUNT];
#endif #endif
E NEARDATA struct savefile_info sfcap, sfrestinfo, sfsaveinfo; E NEARDATA struct savefile_info sfcap, sfrestinfo, sfsaveinfo;
@@ -699,7 +698,12 @@ struct instance_globals {
struct monst youmonst; struct monst youmonst;
struct obj *invent; struct obj *invent;
struct context_info context; struct context_info context;
char *fqn_prefix[PREFIX_COUNT];
/* Windowing stuff that's really tty oriented, but present for all ports */
struct tc_gbl_data tc_gbl_data; /* AS,AE, LI,CO */
struct obj zeroobj; /* used to zero out a struct obj */
struct monst zeromonst; /* used to zero out a struct monst */
anything zeroany; /* used to zero out union any */
/* dig.c */ /* dig.c */
+2 -2
View File
@@ -2287,7 +2287,7 @@ struct obj *obj;
return; return;
consume_obj_charge(obj, TRUE); consume_obj_charge(obj, TRUE);
if (otmp != &zeroobj) { if (otmp != &g.zeroobj) {
You("cover %s with a thick layer of grease.", yname(otmp)); You("cover %s with a thick layer of grease.", yname(otmp));
otmp->greased = 1; otmp->greased = 1;
if (obj->cursed && !nohands(g.youmonst.data)) { if (obj->cursed && !nohands(g.youmonst.data)) {
@@ -3148,7 +3148,7 @@ struct obj *obj;
char buf[BUFSZ]; char buf[BUFSZ];
menu_item *selected; menu_item *selected;
any = zeroany; /* set all bits to zero */ any = g.zeroany; /* set all bits to zero */
any.a_int = 1; /* use index+1 (cant use 0) as identifier */ any.a_int = 1; /* use index+1 (cant use 0) as identifier */
start_menu(tmpwin); start_menu(tmpwin);
any.a_int++; any.a_int++;
+2 -2
View File
@@ -1437,7 +1437,7 @@ struct obj *obj;
struct obj pseudo; struct obj pseudo;
pseudo = pseudo =
zeroobj; /* neither cursed nor blessed, zero oextra too */ g.zeroobj; /* neither cursed nor blessed, zero oextra too */
pseudo.otyp = SCR_TAMING; pseudo.otyp = SCR_TAMING;
(void) seffects(&pseudo); (void) seffects(&pseudo);
break; break;
@@ -1512,7 +1512,7 @@ struct obj *obj;
winid tmpwin = create_nhwindow(NHW_MENU); winid tmpwin = create_nhwindow(NHW_MENU);
anything any; anything any;
any = zeroany; /* set all bits to zero */ any = g.zeroany; /* set all bits to zero */
start_menu(tmpwin); start_menu(tmpwin);
/* use index+1 (cant use 0) as identifier */ /* use index+1 (cant use 0) as identifier */
for (i = num_ok_dungeons = 0; i < g.n_dgns; i++) { for (i = num_ok_dungeons = 0; i < g.n_dgns; i++) {
+24 -24
View File
@@ -925,7 +925,7 @@ init_blstats()
#endif #endif
g.blstats[i][j] = initblstats[j]; g.blstats[i][j] = initblstats[j];
g.blstats[i][j].a = zeroany; g.blstats[i][j].a = g.zeroany;
if (g.blstats[i][j].valwidth) { if (g.blstats[i][j].valwidth) {
g.blstats[i][j].val = (char *) alloc(g.blstats[i][j].valwidth); g.blstats[i][j].val = (char *) alloc(g.blstats[i][j].valwidth);
g.blstats[i][j].val[0] = '\0'; g.blstats[i][j].val[0] = '\0';
@@ -1762,7 +1762,7 @@ int arrmin, arrmax;
start_menu(tmpwin); start_menu(tmpwin);
for (i = arrmin; i < arrmax; i++) { for (i = arrmin; i < arrmax; i++) {
any = zeroany; any = g.zeroany;
any.a_int = i + adj; any.a_int = i + adj;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
arr[i], MENU_UNSELECTED); arr[i], MENU_UNSELECTED);
@@ -2134,7 +2134,7 @@ query_conditions()
start_menu(tmpwin); start_menu(tmpwin);
for (i = 0; i < SIZE(valid_conditions); i++) { for (i = 0; i < SIZE(valid_conditions); i++) {
any = zeroany; any = g.zeroany;
any.a_ulong = valid_conditions[i].bitmask; any.a_ulong = valid_conditions[i].bitmask;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
valid_conditions[i].id, MENU_UNSELECTED); valid_conditions[i].id, MENU_UNSELECTED);
@@ -2695,7 +2695,7 @@ status_hilite_menu_choose_field()
&& !g.blstats[0][BL_SCORE].thresholds) && !g.blstats[0][BL_SCORE].thresholds)
continue; continue;
#endif #endif
any = zeroany; any = g.zeroany;
any.a_int = (i + 1); any.a_int = (i + 1);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
initblstats[i].fldname, MENU_UNSELECTED); initblstats[i].fldname, MENU_UNSELECTED);
@@ -2733,7 +2733,7 @@ int fld;
start_menu(tmpwin); start_menu(tmpwin);
if (fld != BL_CONDITION) { if (fld != BL_CONDITION) {
any = zeroany; any = g.zeroany;
any.a_int = onlybeh = BL_TH_ALWAYS_HILITE; any.a_int = onlybeh = BL_TH_ALWAYS_HILITE;
Sprintf(buf, "Always highlight %s", initblstats[fld].fldname); Sprintf(buf, "Always highlight %s", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 'a', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'a', 0, ATR_NONE,
@@ -2742,7 +2742,7 @@ int fld;
} }
if (fld == BL_CONDITION) { if (fld == BL_CONDITION) {
any = zeroany; any = g.zeroany;
any.a_int = onlybeh = BL_TH_CONDITION; any.a_int = onlybeh = BL_TH_CONDITION;
add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE,
"Bitmask of conditions", MENU_UNSELECTED); "Bitmask of conditions", MENU_UNSELECTED);
@@ -2750,7 +2750,7 @@ int fld;
} }
if (fld != BL_CONDITION) { if (fld != BL_CONDITION) {
any = zeroany; any = g.zeroany;
any.a_int = onlybeh = BL_TH_UPDOWN; any.a_int = onlybeh = BL_TH_UPDOWN;
Sprintf(buf, "%s value changes", initblstats[fld].fldname); Sprintf(buf, "%s value changes", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE,
@@ -2760,7 +2760,7 @@ int fld;
if (fld != BL_CAP && fld != BL_HUNGER if (fld != BL_CAP && fld != BL_HUNGER
&& (at == ANY_INT || at == ANY_LONG)) { && (at == ANY_INT || at == ANY_LONG)) {
any = zeroany; any = g.zeroany;
any.a_int = onlybeh = BL_TH_VAL_ABSOLUTE; any.a_int = onlybeh = BL_TH_VAL_ABSOLUTE;
add_menu(tmpwin, NO_GLYPH, &any, 'n', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'n', 0, ATR_NONE,
"Number threshold", MENU_UNSELECTED); "Number threshold", MENU_UNSELECTED);
@@ -2768,7 +2768,7 @@ int fld;
} }
if (initblstats[fld].idxmax >= 0) { if (initblstats[fld].idxmax >= 0) {
any = zeroany; any = g.zeroany;
any.a_int = onlybeh = BL_TH_VAL_PERCENTAGE; any.a_int = onlybeh = BL_TH_VAL_PERCENTAGE;
add_menu(tmpwin, NO_GLYPH, &any, 'p', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'p', 0, ATR_NONE,
"Percentage threshold", MENU_UNSELECTED); "Percentage threshold", MENU_UNSELECTED);
@@ -2777,7 +2777,7 @@ int fld;
if (initblstats[fld].anytype == ANY_STR if (initblstats[fld].anytype == ANY_STR
|| fld == BL_CAP || fld == BL_HUNGER) { || fld == BL_CAP || fld == BL_HUNGER) {
any = zeroany; any = g.zeroany;
any.a_int = onlybeh = BL_TH_TEXTMATCH; any.a_int = onlybeh = BL_TH_TEXTMATCH;
Sprintf(buf, "%s text match", initblstats[fld].fldname); Sprintf(buf, "%s text match", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE,
@@ -2825,7 +2825,7 @@ boolean ltok, gtok;
(fld == BL_AC) ? "Better (lower)" : "Less", str); (fld == BL_AC) ? "Better (lower)" : "Less", str);
else else
Sprintf(buf, "Value goes down"); Sprintf(buf, "Value goes down");
any = zeroany; any = g.zeroany;
any.a_int = 10 + LT_VALUE; any.a_int = 10 + LT_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED); buf, MENU_UNSELECTED);
@@ -2833,7 +2833,7 @@ boolean ltok, gtok;
if (str) { if (str) {
Sprintf(buf, "%s or %s", Sprintf(buf, "%s or %s",
str, (fld == BL_AC) ? "better (lower)" : "less"); str, (fld == BL_AC) ? "better (lower)" : "less");
any = zeroany; any = g.zeroany;
any.a_int = 10 + LE_VALUE; any.a_int = 10 + LE_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED); buf, MENU_UNSELECTED);
@@ -2844,7 +2844,7 @@ boolean ltok, gtok;
Sprintf(buf, "Exactly %s", str); Sprintf(buf, "Exactly %s", str);
else else
Sprintf(buf, "Value changes"); Sprintf(buf, "Value changes");
any = zeroany; any = g.zeroany;
any.a_int = 10 + EQ_VALUE; any.a_int = 10 + EQ_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED); buf, MENU_UNSELECTED);
@@ -2853,7 +2853,7 @@ boolean ltok, gtok;
if (str) { if (str) {
Sprintf(buf, "%s or %s", Sprintf(buf, "%s or %s",
str, (fld == BL_AC) ? "worse (higher)" : "more"); str, (fld == BL_AC) ? "worse (higher)" : "more");
any = zeroany; any = g.zeroany;
any.a_int = 10 + GE_VALUE; any.a_int = 10 + GE_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED); buf, MENU_UNSELECTED);
@@ -2864,7 +2864,7 @@ boolean ltok, gtok;
(fld == BL_AC) ? "Worse (higher)" : "More", str); (fld == BL_AC) ? "Worse (higher)" : "More", str);
else else
Sprintf(buf, "Value goes up"); Sprintf(buf, "Value goes up");
any = zeroany; any = g.zeroany;
any.a_int = 10 + GT_VALUE; any.a_int = 10 + GT_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED); buf, MENU_UNSELECTED);
@@ -2996,7 +2996,7 @@ choose_value:
: (lt_gt_eq == EQ_VALUE) ? "=" : (lt_gt_eq == EQ_VALUE) ? "="
: ""; /* didn't specify lt_gt_eq with number */ : ""; /* didn't specify lt_gt_eq with number */
aval = zeroany; aval = g.zeroany;
dt = percent ? ANY_INT : initblstats[fld].anytype; dt = percent ? ANY_INT : initblstats[fld].anytype;
(void) s_to_anything(&aval, numstart, dt); (void) s_to_anything(&aval, numstart, dt);
@@ -3366,7 +3366,7 @@ int fld;
hlstr = status_hilite_str; hlstr = status_hilite_str;
while (hlstr) { while (hlstr) {
if (hlstr->fld == fld) { if (hlstr->fld == fld) {
any = zeroany; any = g.zeroany;
any.a_int = hlstr->id; any.a_int = hlstr->id;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
hlstr->str, MENU_UNSELECTED); hlstr->str, MENU_UNSELECTED);
@@ -3374,17 +3374,17 @@ int fld;
hlstr = hlstr->next; hlstr = hlstr->next;
} }
} else { } else {
any = zeroany; any = g.zeroany;
Sprintf(buf, "No current hilites for %s", initblstats[fld].fldname); Sprintf(buf, "No current hilites for %s", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
} }
/* separator line */ /* separator line */
any = zeroany; any = g.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
if (count) { if (count) {
any = zeroany; any = g.zeroany;
any.a_int = -1; any.a_int = -1;
add_menu(tmpwin, NO_GLYPH, &any, 'X', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'X', 0, ATR_NONE,
"Remove selected hilites", MENU_UNSELECTED); "Remove selected hilites", MENU_UNSELECTED);
@@ -3400,7 +3400,7 @@ int fld;
} else } else
#endif #endif
{ {
any = zeroany; any = g.zeroany;
any.a_int = -2; any.a_int = -2;
add_menu(tmpwin, NO_GLYPH, &any, 'Z', 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'Z', 0, ATR_NONE,
"Add a new hilite", MENU_UNSELECTED); "Add a new hilite", MENU_UNSELECTED);
@@ -3496,12 +3496,12 @@ shlmenu_redo:
status_hilite_linestr_gather(); status_hilite_linestr_gather();
countall = status_hilite_linestr_countfield(BL_FLUSH); countall = status_hilite_linestr_countfield(BL_FLUSH);
if (countall) { if (countall) {
any = zeroany; any = g.zeroany;
any.a_int = -1; any.a_int = -1;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"View all hilites in config format", MENU_UNSELECTED); "View all hilites in config format", MENU_UNSELECTED);
any = zeroany; any = g.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
} }
@@ -3517,7 +3517,7 @@ shlmenu_redo:
if (initblstats[i].fld == BL_SCORE && !count) if (initblstats[i].fld == BL_SCORE && !count)
continue; continue;
#endif #endif
any = zeroany; any = g.zeroany;
any.a_int = i + 1; any.a_int = i + 1;
Sprintf(buf, "%-18s", initblstats[i].fldname); Sprintf(buf, "%-18s", initblstats[i].fldname);
if (count) if (count)
+8 -8
View File
@@ -372,7 +372,7 @@ doextlist(VOID_ARGS)
while (redisplay) { while (redisplay) {
redisplay = FALSE; redisplay = FALSE;
any = zeroany; any = g.zeroany;
start_menu(menuwin); start_menu(menuwin);
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"Extended Commands List", MENU_UNSELECTED); "Extended Commands List", MENU_UNSELECTED);
@@ -416,7 +416,7 @@ doextlist(VOID_ARGS)
: "Show all alphabetically, including debugging commands", : "Show all alphabetically, including debugging commands",
MENU_UNSELECTED); MENU_UNSELECTED);
} }
any = zeroany; any = g.zeroany;
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"", MENU_UNSELECTED); "", MENU_UNSELECTED);
menushown[0] = menushown[1] = 0; menushown[0] = menushown[1] = 0;
@@ -557,7 +557,7 @@ extcmd_via_menu()
biggest = 0; biggest = 0;
while (!ret) { while (!ret) {
i = n = 0; i = n = 0;
any = zeroany; any = g.zeroany;
/* populate choices */ /* populate choices */
for (efp = extcmdlist; efp->ef_txt; efp++) { for (efp = extcmdlist; efp->ef_txt; efp++) {
if ((efp->flags & CMD_NOT_AVAILABLE) if ((efp->flags & CMD_NOT_AVAILABLE)
@@ -1326,7 +1326,7 @@ wiz_intrinsic(VOID_ARGS)
const char *propname; const char *propname;
menu_item *pick_list = (menu_item *) 0; menu_item *pick_list = (menu_item *) 0;
any = zeroany; any = g.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
for (i = 0; (propname = propertynames[i].prop_name) != 0; ++i) { for (i = 0; (propname = propertynames[i].prop_name) != 0; ++i) {
@@ -1465,7 +1465,7 @@ doterrain(VOID_ARGS)
*/ */
men = create_nhwindow(NHW_MENU); men = create_nhwindow(NHW_MENU);
start_menu(men); start_menu(men);
any = zeroany; any = g.zeroany;
any.a_int = 1; any.a_int = 1;
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
"known map without monsters, objects, and traps", "known map without monsters, objects, and traps",
@@ -1560,7 +1560,7 @@ const char *buf;
if (g.en_via_menu) { if (g.en_via_menu) {
anything any; anything any;
any = zeroany; any = g.zeroany;
add_menu(g.en_win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE); add_menu(g.en_win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
} else } else
putstr(g.en_win, 0, buf); putstr(g.en_win, 0, buf);
@@ -2917,7 +2917,7 @@ minimal_enlightenment()
fmtstr = iflags.menu_tab_sep ? tabbed_fmtstr : untabbed_fmtstr; fmtstr = iflags.menu_tab_sep ? tabbed_fmtstr : untabbed_fmtstr;
deity_fmtstr = iflags.menu_tab_sep ? tabbed_deity_fmtstr deity_fmtstr = iflags.menu_tab_sep ? tabbed_deity_fmtstr
: untabbed_deity_fmtstr; : untabbed_deity_fmtstr;
any = zeroany; any = g.zeroany;
buf[0] = buf2[0] = '\0'; buf[0] = buf2[0] = '\0';
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
@@ -5111,7 +5111,7 @@ const char *text;
anything any; anything any;
if ((ch = cmd_from_func(func)) != '\0') { if ((ch = cmd_from_func(func)) != '\0') {
any = zeroany; any = g.zeroany;
any.a_nfunc = func; any.a_nfunc = func;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, text, MENU_UNSELECTED); add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, text, MENU_UNSELECTED);
} }
+35 -34
View File
@@ -42,27 +42,21 @@ const schar xdir[10] = { -1, -1, 0, 1, 1, 1, 0, -1, 0, 0 };
const schar ydir[10] = { 0, -1, -1, -1, 0, 1, 1, 1, 0, 0 }; const schar ydir[10] = { 0, -1, -1, -1, 0, 1, 1, 1, 0, 0 };
const schar zdir[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 }; const schar zdir[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, -1 };
NEARDATA struct flag flags = DUMMY; NEARDATA struct flag flags;
#ifdef SYSFLAGS #ifdef SYSFLAGS
NEARDATA struct sysflag sysflags = DUMMY; NEARDATA struct sysflag sysflags;
#endif #endif
NEARDATA struct instance_flags iflags = DUMMY; NEARDATA struct instance_flags iflags;
NEARDATA struct you u = DUMMY; NEARDATA struct you u;
NEARDATA time_t ubirthday = DUMMY; NEARDATA time_t ubirthday;
NEARDATA struct u_realtime urealtime = DUMMY; NEARDATA struct u_realtime urealtime;
NEARDATA struct obj NEARDATA struct obj *uwep, *uarm, *uswapwep,
*uwep = (struct obj *) 0, *uarm = (struct obj *) 0, *uquiver, /* quiver */
*uswapwep = (struct obj *) 0, *uarmu, /* under-wear, so to speak */
*uquiver = (struct obj *) 0, /* quiver */ *uskin, /* dragon armor, if a dragon */
*uarmu = (struct obj *) 0, /* under-wear, so to speak */ *uarmc, *uarmh, *uarms, *uarmg,*uarmf, *uamul,
*uskin = (struct obj *) 0, /* dragon armor, if a dragon */ *uright, *uleft, *ublindf, *uchain, *uball;
*uarmc = (struct obj *) 0, *uarmh = (struct obj *) 0,
*uarms = (struct obj *) 0, *uarmg = (struct obj *) 0,
*uarmf = (struct obj *) 0, *uamul = (struct obj *) 0,
*uright = (struct obj *) 0, *uleft = (struct obj *) 0,
*ublindf = (struct obj *) 0, *uchain = (struct obj *) 0,
*uball = (struct obj *) 0;
#ifdef TEXTCOLOR #ifdef TEXTCOLOR
/* /*
@@ -86,13 +80,8 @@ const int shield_static[SHIELD_COUNT] = {
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,
}; };
/* used to zero all elements of a struct obj and a struct monst */
NEARDATA struct obj zeroobj = DUMMY;
NEARDATA struct monst zeromonst = DUMMY;
/* used to zero out union any; initializer deliberately omitted */
NEARDATA anything zeroany;
NEARDATA struct c_color_names c_color_names = { NEARDATA const struct c_color_names c_color_names = {
"black", "amber", "golden", "light blue", "red", "green", "black", "amber", "golden", "light blue", "red", "green",
"silver", "blue", "purple", "white", "orange" "silver", "blue", "purple", "white", "orange"
}; };
@@ -116,7 +105,7 @@ const char *c_obj_colors[] = {
"white", /* CLR_WHITE */ "white", /* CLR_WHITE */
}; };
struct c_common_strings c_common_strings = { "Nothing happens.", const struct c_common_strings c_common_strings = { "Nothing happens.",
"That's enough tries!", "That's enough tries!",
"That is a silly thing to %s.", "That is a silly thing to %s.",
"shudder for a moment.", "shudder for a moment.",
@@ -141,16 +130,8 @@ NEARDATA winid WIN_MESSAGE = WIN_ERR;
NEARDATA winid WIN_STATUS = WIN_ERR; NEARDATA winid WIN_STATUS = WIN_ERR;
NEARDATA winid WIN_MAP = WIN_ERR, WIN_INVEN = WIN_ERR; NEARDATA winid WIN_MAP = WIN_ERR, WIN_INVEN = WIN_ERR;
/* Windowing stuff that's really tty oriented, but present for all ports */
struct tc_gbl_data tc_gbl_data = { 0, 0, 0, 0 }; /* AS,AE, LI,CO */
char *fqn_prefix[PREFIX_COUNT] = { (char *) 0, (char *) 0, (char *) 0,
(char *) 0, (char *) 0, (char *) 0,
(char *) 0, (char *) 0, (char *) 0,
(char *) 0 };
#ifdef PREFIXES_IN_USE #ifdef PREFIXES_IN_USE
char *fqn_prefix_names[PREFIX_COUNT] = { const char *fqn_prefix_names[PREFIX_COUNT] = {
"hackdir", "leveldir", "savedir", "bonesdir", "datadir", "hackdir", "leveldir", "savedir", "bonesdir", "datadir",
"scoredir", "lockdir", "sysconfdir", "configdir", "troubledir" "scoredir", "lockdir", "sysconfdir", "configdir", "troubledir"
}; };
@@ -312,6 +293,11 @@ const struct instance_globals g_init = {
DUMMY, /* youmonst */ DUMMY, /* youmonst */
NULL, /* invent */ NULL, /* invent */
DUMMY, /* context */ DUMMY, /* context */
DUMMY, /* fqn_prefix */
DUMMY, /* tc_gbl_data */
DUMMY, /* zeroobj */
DUMMY, /* zeromonst */
DUMMY, /* zeronay */
/* dig.c */ /* dig.c */
UNDEFINED_VALUE, /* did_dig_msg */ UNDEFINED_VALUE, /* did_dig_msg */
@@ -608,6 +594,8 @@ const struct instance_globals g_init = {
struct instance_globals g; struct instance_globals g;
#define ZERO(x) memset(&x, 0, sizeof(x))
void void
decl_globals_init() decl_globals_init()
{ {
@@ -629,6 +617,19 @@ decl_globals_init()
g.subrooms = &g.rooms[MAXNROFROOMS + 1]; g.subrooms = &g.rooms[MAXNROFROOMS + 1];
ZERO(flags);
#ifdef SYSFLAGS
ZERO(sysflags);
#endif
ZERO(iflags);
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;
} }
/*decl.c*/ /*decl.c*/
+4 -4
View File
@@ -404,7 +404,7 @@ outgoldmap:
continue; /* probably overkill here */ continue; /* probably overkill here */
temp = 0; temp = 0;
if (findgold(mtmp->minvent) || monsndx(mtmp->data) == PM_GOLD_GOLEM) { if (findgold(mtmp->minvent) || monsndx(mtmp->data) == PM_GOLD_GOLEM) {
gold = zeroobj; /* ensure oextra is cleared too */ gold = g.zeroobj; /* ensure oextra is cleared too */
gold.otyp = GOLD_PIECE; gold.otyp = GOLD_PIECE;
gold.quan = (long) rnd(10); /* usually more than 1 */ gold.quan = (long) rnd(10); /* usually more than 1 */
gold.ox = mtmp->mx; gold.ox = mtmp->mx;
@@ -730,7 +730,7 @@ int class; /* an object class, 0 for all */
&& (!class || class == objects[mtmp->mappearance].oc_class)) { && (!class || class == objects[mtmp->mappearance].oc_class)) {
struct obj temp; struct obj temp;
temp = zeroobj; temp = g.zeroobj;
temp.otyp = mtmp->mappearance; /* needed for obj_to_glyph() */ temp.otyp = mtmp->mappearance; /* needed for obj_to_glyph() */
temp.quan = 1L; temp.quan = 1L;
temp.ox = mtmp->mx; temp.ox = mtmp->mx;
@@ -741,7 +741,7 @@ int class; /* an object class, 0 for all */
&& (!class || class == COIN_CLASS)) { && (!class || class == COIN_CLASS)) {
struct obj gold; struct obj gold;
gold = zeroobj; /* ensure oextra is cleared too */ gold = g.zeroobj; /* ensure oextra is cleared too */
gold.otyp = GOLD_PIECE; gold.otyp = GOLD_PIECE;
gold.quan = (long) rnd(10); /* usually more than 1 */ gold.quan = (long) rnd(10); /* usually more than 1 */
gold.ox = mtmp->mx; gold.ox = mtmp->mx;
@@ -857,7 +857,7 @@ int src_cursed;
if (Hallucination || src_cursed) { if (Hallucination || src_cursed) {
struct obj obj; /* fake object */ struct obj obj; /* fake object */
obj = zeroobj; obj = g.zeroobj;
if (trap) { if (trap) {
obj.ox = trap->tx; obj.ox = trap->tx;
obj.oy = trap->ty; obj.oy = trap->ty;
+1 -1
View File
@@ -422,7 +422,7 @@ xchar worm_tail; /* mon is actually a worm tail */
/* Make a fake object to send to map_object(). */ /* Make a fake object to send to map_object(). */
struct obj obj; struct obj obj;
obj = zeroobj; obj = g.zeroobj;
obj.ox = x; obj.ox = x;
obj.oy = y; obj.oy = y;
obj.otyp = mon->mappearance; obj.otyp = mon->mappearance;
+2 -2
View File
@@ -582,7 +582,7 @@ int gloc;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
/* gather_locs returns array[0] == you. skip it. */ /* gather_locs returns array[0] == you. skip it. */
for (i = 1; i < gcount; i++) { for (i = 1; i < gcount; i++) {
@@ -1332,7 +1332,7 @@ docallcmd()
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; any = g.zeroany;
any.a_char = 'm'; /* group accelerator 'C' */ any.a_char = 'm'; /* group accelerator 'C' */
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE, add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE,
"a monster", MENU_UNSELECTED); "a monster", MENU_UNSELECTED);
+1 -1
View File
@@ -26,7 +26,7 @@ struct monst *mon;
{ {
struct obj *obj, *wep, dummy, *pickaxe, *unihorn, *key; struct obj *obj, *wep, dummy, *pickaxe, *unihorn, *key;
dummy = zeroobj; dummy = g.zeroobj;
dummy.otyp = GOLD_PIECE; /* not STRANGE_OBJECT or tools of interest */ dummy.otyp = GOLD_PIECE; /* not STRANGE_OBJECT or tools of interest */
dummy.oartifact = 1; /* so real artifact won't override "don't keep it" */ dummy.oartifact = 1; /* so real artifact won't override "don't keep it" */
pickaxe = unihorn = key = (struct obj *) 0; pickaxe = unihorn = key = (struct obj *) 0;
+5 -5
View File
@@ -726,8 +726,8 @@ init_dungeons()
Strcat(tbuf, "\" from "); Strcat(tbuf, "\" from ");
#ifdef PREFIXES_IN_USE #ifdef PREFIXES_IN_USE
Strcat(tbuf, "\n\""); Strcat(tbuf, "\n\"");
if (fqn_prefix[DATAPREFIX]) if (g.fqn_prefix[DATAPREFIX])
Strcat(tbuf, fqn_prefix[DATAPREFIX]); Strcat(tbuf, g.fqn_prefix[DATAPREFIX]);
#else #else
Strcat(tbuf, "\""); Strcat(tbuf, "\"");
#endif #endif
@@ -737,7 +737,7 @@ init_dungeons()
#endif #endif
#ifdef WIN32 #ifdef WIN32
interject_assistance(1, INTERJECT_PANIC, (genericptr_t) tbuf, interject_assistance(1, INTERJECT_PANIC, (genericptr_t) tbuf,
(genericptr_t) fqn_prefix[DATAPREFIX]); (genericptr_t) g.fqn_prefix[DATAPREFIX]);
#endif #endif
panic1(tbuf); panic1(tbuf);
} }
@@ -1752,7 +1752,7 @@ boolean unreachable;
lchoices->lev[lchoices->idx] = lvl_p->dlevel; lchoices->lev[lchoices->idx] = lvl_p->dlevel;
lchoices->dgn[lchoices->idx] = lvl_p->dnum; lchoices->dgn[lchoices->idx] = lvl_p->dnum;
lchoices->playerlev[lchoices->idx] = depth(lvl_p); lchoices->playerlev[lchoices->idx] = depth(lvl_p);
any = zeroany; any = g.zeroany;
if (unreachable) { if (unreachable) {
/* not selectable, but still consumes next menuletter; /* not selectable, but still consumes next menuletter;
prepend padding in place of missing menu selector */ prepend padding in place of missing menu selector */
@@ -1872,7 +1872,7 @@ xchar *rdgn;
dptr->depth_start + dptr->entry_lev - 1); dptr->depth_start + dptr->entry_lev - 1);
} }
if (bymenu) { if (bymenu) {
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
MENU_UNSELECTED); MENU_UNSELECTED);
} else } else
+1 -1
View File
@@ -1739,7 +1739,7 @@ set_vanq_order()
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
for (i = 0; i < SIZE(vanqorders); i++) { for (i = 0; i < SIZE(vanqorders); i++) {
if (i == VANQ_ALPHA_MIX || i == VANQ_MCLS_HTOL) /* skip these */ if (i == VANQ_ALPHA_MIX || i == VANQ_MCLS_HTOL) /* skip these */
continue; continue;
+4 -4
View File
@@ -539,10 +539,10 @@ doengrave()
*/ */
otmp = getobj(styluses, "write with"); otmp = getobj(styluses, "write with");
if (!otmp) /* otmp == zeroobj if fingers */ if (!otmp) /* otmp == g.zeroobj if fingers */
return 0; return 0;
if (otmp == &zeroobj) { if (otmp == &g.zeroobj) {
Strcat(strcpy(fbuf, "your "), body_part(FINGERTIP)); Strcat(strcpy(fbuf, "your "), body_part(FINGERTIP));
writer = fbuf; writer = fbuf;
} else } else
@@ -571,7 +571,7 @@ doengrave()
return 0; return 0;
} }
if (IS_GRAVE(levl[u.ux][u.uy].typ)) { if (IS_GRAVE(levl[u.ux][u.uy].typ)) {
if (otmp == &zeroobj) { /* using only finger */ if (otmp == &g.zeroobj) { /* using only finger */
You("would only make a small smudge on the %s.", You("would only make a small smudge on the %s.",
surface(u.ux, u.uy)); surface(u.ux, u.uy));
return 0; return 0;
@@ -1008,7 +1008,7 @@ doengrave()
} }
/* Tell adventurer what is going on */ /* Tell adventurer what is going on */
if (otmp != &zeroobj) if (otmp != &g.zeroobj)
You("%s the %s with %s.", everb, eloc, doname(otmp)); You("%s the %s with %s.", everb, eloc, doname(otmp));
else else
You("%s the %s with your %s.", everb, eloc, body_part(FINGERTIP)); You("%s the %s with your %s.", everb, eloc, body_part(FINGERTIP));
+11 -11
View File
@@ -346,19 +346,19 @@ int buffnum UNUSED_if_not_PREFIXES_IN_USE;
#else #else
if (!basenam || whichprefix < 0 || whichprefix >= PREFIX_COUNT) if (!basenam || whichprefix < 0 || whichprefix >= PREFIX_COUNT)
return basenam; return basenam;
if (!fqn_prefix[whichprefix]) if (!g.fqn_prefix[whichprefix])
return basenam; return basenam;
if (buffnum < 0 || buffnum >= FQN_NUMBUF) { if (buffnum < 0 || buffnum >= FQN_NUMBUF) {
impossible("Invalid fqn_filename_buffer specified: %d", buffnum); impossible("Invalid fqn_filename_buffer specified: %d", buffnum);
buffnum = 0; buffnum = 0;
} }
if (strlen(fqn_prefix[whichprefix]) + strlen(basenam) if (strlen(g.fqn_prefix[whichprefix]) + strlen(basenam)
>= FQN_MAX_FILENAME) { >= FQN_MAX_FILENAME) {
impossible("fqname too long: %s + %s", fqn_prefix[whichprefix], impossible("fqname too long: %s + %s", g.fqn_prefix[whichprefix],
basenam); basenam);
return basenam; /* XXX */ return basenam; /* XXX */
} }
Strcpy(fqn_filename_buffer[buffnum], fqn_prefix[whichprefix]); Strcpy(fqn_filename_buffer[buffnum], g.fqn_prefix[whichprefix]);
return strcat(fqn_filename_buffer[buffnum], basenam); return strcat(fqn_filename_buffer[buffnum], basenam);
#endif #endif
} }
@@ -399,7 +399,7 @@ char *reasonbuf; /* reasonbuf must be at least BUFSZ, supplied by caller */
if (!(details = strerror(errno))) if (!(details = strerror(errno)))
#endif #endif
details = ""; details = "";
Sprintf(panicbuf2, "\"%s\", (%d) %s", fqn_prefix[prefcnt], errno, Sprintf(panicbuf2, "\"%s\", (%d) %s", g.fqn_prefix[prefcnt], errno,
details); details);
paniclog(panicbuf1, panicbuf2); paniclog(panicbuf1, panicbuf2);
failcount++; failcount++;
@@ -2123,9 +2123,9 @@ int prefixid;
if ((ptr = index(bufp, ';')) != 0) if ((ptr = index(bufp, ';')) != 0)
*ptr = '\0'; *ptr = '\0';
if (strlen(bufp) > 0) { if (strlen(bufp) > 0) {
fqn_prefix[prefixid] = (char *) alloc(strlen(bufp) + 2); g.fqn_prefix[prefixid] = (char *) alloc(strlen(bufp) + 2);
Strcpy(fqn_prefix[prefixid], bufp); Strcpy(g.fqn_prefix[prefixid], bufp);
append_slash(fqn_prefix[prefixid]); append_slash(g.fqn_prefix[prefixid]);
} }
} }
#endif #endif
@@ -2269,7 +2269,7 @@ char *origbuf;
/* Go through possible variables */ /* Go through possible variables */
/* some of these (at least LEVELS and SAVE) should now set the /* some of these (at least LEVELS and SAVE) should now set the
* appropriate fqn_prefix[] rather than specialized variables * appropriate g.fqn_prefix[] rather than specialized variables
*/ */
if (match_varname(buf, "OPTIONS", 4)) { if (match_varname(buf, "OPTIONS", 4)) {
/* hack: un-mungspaces to allow consecutive spaces in /* hack: un-mungspaces to allow consecutive spaces in
@@ -2929,7 +2929,7 @@ STATIC_DCL void
wizkit_addinv(obj) wizkit_addinv(obj)
struct obj *obj; struct obj *obj;
{ {
if (!obj || obj == &zeroobj) if (!obj || obj == &g.zeroobj)
return; return;
/* subset of starting inventory pre-ID */ /* subset of starting inventory pre-ID */
@@ -2959,7 +2959,7 @@ char *buf;
struct obj *otmp = readobjnam(buf, (struct obj *) 0); struct obj *otmp = readobjnam(buf, (struct obj *) 0);
if (otmp) { if (otmp) {
if (otmp != &zeroobj) if (otmp != &g.zeroobj)
wizkit_addinv(otmp); wizkit_addinv(otmp);
} else { } else {
/* .60 limits output line width to 79 chars */ /* .60 limits output line width to 79 chars */
+4 -4
View File
@@ -28,7 +28,7 @@ anything *
uint_to_any(ui) uint_to_any(ui)
unsigned ui; unsigned ui;
{ {
g.tmp_anything = zeroany; g.tmp_anything = g.zeroany;
g.tmp_anything.a_uint = ui; g.tmp_anything.a_uint = ui;
return &g.tmp_anything; return &g.tmp_anything;
} }
@@ -37,7 +37,7 @@ anything *
long_to_any(lng) long_to_any(lng)
long lng; long lng;
{ {
g.tmp_anything = zeroany; g.tmp_anything = g.zeroany;
g.tmp_anything.a_long = lng; g.tmp_anything.a_long = lng;
return &g.tmp_anything; return &g.tmp_anything;
} }
@@ -46,7 +46,7 @@ anything *
monst_to_any(mtmp) monst_to_any(mtmp)
struct monst *mtmp; struct monst *mtmp;
{ {
g.tmp_anything = zeroany; g.tmp_anything = g.zeroany;
g.tmp_anything.a_monst = mtmp; g.tmp_anything.a_monst = mtmp;
return &g.tmp_anything; return &g.tmp_anything;
} }
@@ -55,7 +55,7 @@ anything *
obj_to_any(obj) obj_to_any(obj)
struct obj *obj; struct obj *obj;
{ {
g.tmp_anything = zeroany; g.tmp_anything = g.zeroany;
g.tmp_anything.a_obj = obj; g.tmp_anything.a_obj = obj;
return &g.tmp_anything; return &g.tmp_anything;
} }
+10 -10
View File
@@ -1376,7 +1376,7 @@ const char *action;
* getobj returns: * getobj returns:
* struct obj *xxx: object to do something with. * struct obj *xxx: object to do something with.
* (struct obj *) 0 error return: no object. * (struct obj *) 0 error return: no object.
* &zeroobj explicitly no object (as in w-). * &g.zeroobj explicitly no object (as in w-).
!!!! test if gold can be used in unusual ways (eaten etc.) !!!! test if gold can be used in unusual ways (eaten etc.)
!!!! may be able to remove "usegold" !!!! may be able to remove "usegold"
*/ */
@@ -1664,7 +1664,7 @@ register const char *let, *word;
You("mime %s something%s%s.", ing_suffix(bp), suf ? " " : "", You("mime %s something%s%s.", ing_suffix(bp), suf ? " " : "",
suf ? suf : ""); suf ? suf : "");
} }
return (allownone ? &zeroobj : (struct obj *) 0); return (allownone ? &g.zeroobj : (struct obj *) 0);
} }
redo_menu: redo_menu:
/* since gold is now kept in inventory, we need to do processing for /* since gold is now kept in inventory, we need to do processing for
@@ -1697,7 +1697,7 @@ redo_menu:
if (!ilet) if (!ilet)
continue; continue;
if (ilet == HANDS_SYM) if (ilet == HANDS_SYM)
return &zeroobj; return &g.zeroobj;
if (ilet == '\033') { if (ilet == '\033') {
if (flags.verbose) if (flags.verbose)
pline1(Never_mind); pline1(Never_mind);
@@ -2587,7 +2587,7 @@ long *out_cnt;
(boolean FDECL((*), (OBJ_P))) 0); (boolean FDECL((*), (OBJ_P))) 0);
start_menu(win); start_menu(win);
any = zeroany; any = g.zeroany;
if (wizard && iflags.override_ID) { if (wizard && iflags.override_ID) {
int unid_cnt; int unid_cnt;
char prompt[QBUFSZ]; char prompt[QBUFSZ];
@@ -2635,7 +2635,7 @@ nextclass:
if (!flags.sortpack || otmp->oclass == *invlet) { if (!flags.sortpack || otmp->oclass == *invlet) {
if (wizid && !not_fully_identified(otmp)) if (wizid && !not_fully_identified(otmp))
continue; continue;
any = zeroany; /* all bits zero */ any = g.zeroany; /* all bits zero */
ilet = otmp->invlet; ilet = otmp->invlet;
if (flags.sortpack && !classcount) { if (flags.sortpack && !classcount) {
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
@@ -2661,7 +2661,7 @@ nextclass:
} }
} }
if (iflags.force_invmenu && lets && want_reply) { if (iflags.force_invmenu && lets && want_reply) {
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Special", MENU_UNSELECTED); "Special", MENU_UNSELECTED);
any.a_char = '*'; any.a_char = '*';
@@ -2674,7 +2674,7 @@ nextclass:
recognized via any.a_char still being zero; the n==0 case above recognized via any.a_char still being zero; the n==0 case above
gets skipped for perm_invent), put something into the menu */ gets skipped for perm_invent), put something into the menu */
if (iflags.perm_invent && !lets && !any.a_char) { if (iflags.perm_invent && !lets && !any.a_char) {
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, 0, add_menu(win, NO_GLYPH, &any, 0, 0, 0,
not_carrying_anything, MENU_UNSELECTED); not_carrying_anything, MENU_UNSELECTED);
want_reply = FALSE; want_reply = FALSE;
@@ -2746,7 +2746,7 @@ char avoidlet;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
while (!invdone) { while (!invdone) {
any = zeroany; /* set all bits to zero */ any = g.zeroany; /* set all bits to zero */
classcount = 0; classcount = 0;
for (otmp = g.invent; otmp; otmp = otmp->nobj) { for (otmp = g.invent; otmp; otmp = otmp->nobj) {
ilet = otmp->invlet; ilet = otmp->invlet;
@@ -2754,7 +2754,7 @@ char avoidlet;
continue; continue;
if (!flags.sortpack || otmp->oclass == *invlet) { if (!flags.sortpack || otmp->oclass == *invlet) {
if (flags.sortpack && !classcount) { if (flags.sortpack && !classcount) {
any = zeroany; /* zero */ any = g.zeroany; /* zero */
add_menu(win, NO_GLYPH, &any, 0, 0, add_menu(win, NO_GLYPH, &any, 0, 0,
iflags.menu_headings, iflags.menu_headings,
let_to_name(*invlet, FALSE, FALSE), let_to_name(*invlet, FALSE, FALSE),
@@ -4170,7 +4170,7 @@ const char *hdr, *txt;
anything any; anything any;
menu_item *selected; menu_item *selected;
any = zeroany; any = g.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, hdr, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, hdr,
+3 -3
View File
@@ -89,7 +89,7 @@ anything *id;
light_source *curr, *prev; light_source *curr, *prev;
anything tmp_id; anything tmp_id;
tmp_id = zeroany; tmp_id = g.zeroany;
/* need to be prepared for dealing a with light source which /* need to be prepared for dealing a with light source which
has only been partially restored during a level change has only been partially restored during a level change
(in particular: chameleon vs prot. from shape changers) */ (in particular: chameleon vs prot. from shape changers) */
@@ -443,14 +443,14 @@ light_source *ls;
arg_save = ls->id; arg_save = ls->id;
if (ls->type == LS_OBJECT) { if (ls->type == LS_OBJECT) {
otmp = ls->id.a_obj; otmp = ls->id.a_obj;
ls->id = zeroany; ls->id = g.zeroany;
ls->id.a_uint = otmp->o_id; ls->id.a_uint = otmp->o_id;
if (find_oid((unsigned) ls->id.a_uint) != otmp) if (find_oid((unsigned) ls->id.a_uint) != otmp)
impossible("write_ls: can't find obj #%u!", impossible("write_ls: can't find obj #%u!",
ls->id.a_uint); ls->id.a_uint);
} else { /* ls->type == LS_MONSTER */ } else { /* ls->type == LS_MONSTER */
mtmp = (struct monst *) ls->id.a_monst; mtmp = (struct monst *) ls->id.a_monst;
ls->id = zeroany; ls->id = g.zeroany;
ls->id.a_uint = mtmp->m_id; ls->id.a_uint = mtmp->m_id;
if (find_mid((unsigned) ls->id.a_uint, FM_EVERYWHERE) != mtmp) if (find_mid((unsigned) ls->id.a_uint, FM_EVERYWHERE) != mtmp)
impossible("write_ls: can't find mon #%u!", impossible("write_ls: can't find mon #%u!",
+1 -1
View File
@@ -1181,7 +1181,7 @@ int mmflags;
} }
(void) propagate(mndx, countbirth, FALSE); (void) propagate(mndx, countbirth, FALSE);
mtmp = newmonst(); mtmp = newmonst();
*mtmp = zeromonst; /* clear all entries in structure */ *mtmp = g.zeromonst; /* clear all entries in structure */
if (mmflags & MM_EGD) if (mmflags & MM_EGD)
newegd(mtmp); newegd(mtmp);
+2 -2
View File
@@ -112,7 +112,7 @@ struct obj *otmp;
if (!OMONST(otmp)) { if (!OMONST(otmp)) {
struct monst *m = newmonst(); struct monst *m = newmonst();
*m = zeromonst; *m = g.zeromonst;
OMONST(otmp) = m; OMONST(otmp) = m;
} }
} }
@@ -760,7 +760,7 @@ boolean artif;
char let = objects[otyp].oc_class; char let = objects[otyp].oc_class;
otmp = newobj(); otmp = newobj();
*otmp = zeroobj; *otmp = g.zeroobj;
otmp->age = g.monstermoves; otmp->age = g.monstermoves;
otmp->o_id = g.context.ident++; otmp->o_id = g.context.ident++;
if (!otmp->o_id) if (!otmp->o_id)
+1 -1
View File
@@ -334,7 +334,7 @@ boolean special;
int pm, x, y; int pm, x, y;
struct monst fakemon; struct monst fakemon;
fakemon = zeromonst; fakemon = g.zeromonst;
while (num) { while (num) {
int tryct = 0; int tryct = 0;
+2 -2
View File
@@ -2354,7 +2354,7 @@ boolean by_you;
spells could toss pillar of fire at self--probably too suicidal] */ spells could toss pillar of fire at self--probably too suicidal] */
if (!mon->mcan && !mon->mspec_used if (!mon->mcan && !mon->mspec_used
&& attacktype_fordmg(mptr, AT_BREA, AD_FIRE)) { && attacktype_fordmg(mptr, AT_BREA, AD_FIRE)) {
odummy = zeroobj; /* otyp == STRANGE_OBJECT */ odummy = g.zeroobj; /* otyp == STRANGE_OBJECT */
return muse_unslime(mon, &odummy, (struct trap *) 0, by_you); return muse_unslime(mon, &odummy, (struct trap *) 0, by_you);
} }
@@ -2393,7 +2393,7 @@ boolean by_you;
} }
} }
if (t && t->ttyp == FIRE_TRAP) if (t && t->ttyp == FIRE_TRAP)
return muse_unslime(mon, &zeroobj, t, by_you); return muse_unslime(mon, &g.zeroobj, t, by_you);
} /* MUSE */ } /* MUSE */
+3 -3
View File
@@ -511,7 +511,7 @@ doclassdisco()
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
} }
any = zeroany; any = g.zeroany;
menulet = 'a'; menulet = 'a';
/* check whether we've discovered any unique objects */ /* check whether we've discovered any unique objects */
@@ -667,7 +667,7 @@ rename_disco()
anything any; anything any;
menu_item *selected = 0; menu_item *selected = 0;
any = zeroany; any = g.zeroany;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
@@ -719,7 +719,7 @@ rename_disco()
if (dis != STRANGE_OBJECT) { if (dis != STRANGE_OBJECT) {
struct obj odummy; struct obj odummy;
odummy = zeroobj; odummy = g.zeroobj;
odummy.otyp = dis; odummy.otyp = dis;
odummy.oclass = objects[dis].oc_class; odummy.oclass = objects[dis].oc_class;
odummy.quan = 1L; odummy.quan = 1L;
+13 -13
View File
@@ -734,7 +734,7 @@ struct obj *obj;
/* caveat: this makes a lot of assumptions about which fields /* caveat: this makes a lot of assumptions about which fields
are required in order for xname() to yield a sensible result */ are required in order for xname() to yield a sensible result */
bareobj = zeroobj; bareobj = g.zeroobj;
bareobj.otyp = otyp; bareobj.otyp = otyp;
bareobj.oclass = obj->oclass; bareobj.oclass = obj->oclass;
bareobj.dknown = obj->dknown; bareobj.dknown = obj->dknown;
@@ -2806,7 +2806,7 @@ char oclass;
* Return something wished for. Specifying a null pointer for * Return something wished for. Specifying a null pointer for
* the user request string results in a random object. Otherwise, * the user request string results in a random object. Otherwise,
* if asking explicitly for "nothing" (or "nil") return no_wish; * if asking explicitly for "nothing" (or "nil") return no_wish;
* if not an object return &zeroobj; if an error (no matching object), * if not an object return &g.zeroobj; if an error (no matching object),
* return null. * return null.
*/ */
struct obj * struct obj *
@@ -3571,7 +3571,7 @@ wiztrap:
(trap != MAGIC_PORTAL) ? "" : " to nowhere"); (trap != MAGIC_PORTAL) ? "" : " to nowhere");
} else } else
pline("Creation of %s failed.", an(tname)); pline("Creation of %s failed.", an(tname));
return &zeroobj; return &g.zeroobj;
} }
/* furniture and terrain */ /* furniture and terrain */
@@ -3584,20 +3584,20 @@ wiztrap:
lev->blessedftn = 1; lev->blessedftn = 1;
pline("A %sfountain.", lev->blessedftn ? "magic " : ""); pline("A %sfountain.", lev->blessedftn ? "magic " : "");
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
if (!BSTRCMPI(bp, p - 6, "throne")) { if (!BSTRCMPI(bp, p - 6, "throne")) {
lev->typ = THRONE; lev->typ = THRONE;
pline("A throne."); pline("A throne.");
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
if (!BSTRCMPI(bp, p - 4, "sink")) { if (!BSTRCMPI(bp, p - 4, "sink")) {
lev->typ = SINK; lev->typ = SINK;
g.level.flags.nsinks++; g.level.flags.nsinks++;
pline("A sink."); pline("A sink.");
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
/* ("water" matches "potion of water" rather than terrain) */ /* ("water" matches "potion of water" rather than terrain) */
if (!BSTRCMPI(bp, p - 4, "pool") || !BSTRCMPI(bp, p - 4, "moat")) { if (!BSTRCMPI(bp, p - 4, "pool") || !BSTRCMPI(bp, p - 4, "moat")) {
@@ -3607,7 +3607,7 @@ wiztrap:
/* Must manually make kelp! */ /* Must manually make kelp! */
water_damage_chain(g.level.objects[x][y], TRUE); water_damage_chain(g.level.objects[x][y], TRUE);
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
if (!BSTRCMPI(bp, p - 4, "lava")) { /* also matches "molten lava" */ if (!BSTRCMPI(bp, p - 4, "lava")) { /* also matches "molten lava" */
lev->typ = LAVAPOOL; lev->typ = LAVAPOOL;
@@ -3616,7 +3616,7 @@ wiztrap:
if (!(Levitation || Flying)) if (!(Levitation || Flying))
(void) lava_effects(); (void) lava_effects();
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
if (!BSTRCMPI(bp, p - 5, "altar")) { if (!BSTRCMPI(bp, p - 5, "altar")) {
@@ -3636,7 +3636,7 @@ wiztrap:
lev->altarmask = Align2amask(al); lev->altarmask = Align2amask(al);
pline("%s altar.", An(align_str(al))); pline("%s altar.", An(align_str(al)));
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
if (!BSTRCMPI(bp, p - 5, "grave") if (!BSTRCMPI(bp, p - 5, "grave")
@@ -3645,7 +3645,7 @@ wiztrap:
pline("%s.", IS_GRAVE(lev->typ) ? "A grave" pline("%s.", IS_GRAVE(lev->typ) ? "A grave"
: "Can't place a grave here"); : "Can't place a grave here");
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
if (!BSTRCMPI(bp, p - 4, "tree")) { if (!BSTRCMPI(bp, p - 4, "tree")) {
@@ -3653,14 +3653,14 @@ wiztrap:
pline("A tree."); pline("A tree.");
newsym(x, y); newsym(x, y);
block_point(x, y); block_point(x, y);
return &zeroobj; return &g.zeroobj;
} }
if (!BSTRCMPI(bp, p - 4, "bars")) { if (!BSTRCMPI(bp, p - 4, "bars")) {
lev->typ = IRONBARS; lev->typ = IRONBARS;
pline("Iron bars."); pline("Iron bars.");
newsym(x, y); newsym(x, y);
return &zeroobj; return &g.zeroobj;
} }
} }
@@ -3969,7 +3969,7 @@ typfnd:
|| (otmp->oartifact && rn2(nartifact_exist()) > 1)) && !wizard) { || (otmp->oartifact && rn2(nartifact_exist()) > 1)) && !wizard) {
artifact_exists(otmp, safe_oname(otmp), FALSE); artifact_exists(otmp, safe_oname(otmp), FALSE);
obfree(otmp, (struct obj *) 0); obfree(otmp, (struct obj *) 0);
otmp = &zeroobj; otmp = &g.zeroobj;
pline("For a moment, you feel %s in your %s, but it disappears!", pline("For a moment, you feel %s in your %s, but it disappears!",
something, makeplural(body_part(HAND))); something, makeplural(body_part(HAND)));
} }
+30 -30
View File
@@ -1447,7 +1447,7 @@ const char *prompt;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(colornames); i++) { for (i = 0; i < SIZE(colornames); i++) {
if (!colornames[i].name) if (!colornames[i].name)
break; break;
@@ -1493,7 +1493,7 @@ const char *prompt;
default_attr = iflags.menu_headings; default_attr = iflags.menu_headings;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(attrnames); i++) { for (i = 0; i < SIZE(attrnames); i++) {
if (!attrnames[i].name) if (!attrnames[i].name)
break; break;
@@ -1592,7 +1592,7 @@ query_msgtype()
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(msgtype_names); i++) for (i = 0; i < SIZE(msgtype_names); i++)
if (msgtype_names[i].descr) { if (msgtype_names[i].descr) {
any.a_int = msgtype_names[i].msgtyp + 1; any.a_int = msgtype_names[i].msgtyp + 1;
@@ -4231,7 +4231,7 @@ int indexoffset; /* value to add to index in compopt[], or zero
anything any; anything any;
int i; int i;
any = zeroany; any = g.zeroany;
if (indexoffset == 0) { if (indexoffset == 0) {
any.a_int = 0; any.a_int = 0;
value = get_compopt_value(option, buf2); value = get_compopt_value(option, buf2);
@@ -4268,7 +4268,7 @@ char *bufx;
int nset; int nset;
{ {
char buf[BUFSZ], buf2[BUFSZ]; char buf[BUFSZ], buf2[BUFSZ];
anything any = zeroany; anything any = g.zeroany;
any.a_int = id; any.a_int = id;
if (!bufx) if (!bufx)
@@ -4371,7 +4371,7 @@ doset() /* changing options via menu by Per Liboriussen */
made_fmtstr = TRUE; made_fmtstr = TRUE;
} }
any = zeroany; any = g.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Booleans (selecting will toggle value):", MENU_UNSELECTED); "Booleans (selecting will toggle value):", MENU_UNSELECTED);
any.a_int = 0; any.a_int = 0;
@@ -4402,7 +4402,7 @@ doset() /* changing options via menu by Per Liboriussen */
boolcount = i; boolcount = i;
indexoffset = boolcount; indexoffset = boolcount;
any = zeroany; any = g.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Compounds (selecting will prompt for new value):", "Compounds (selecting will prompt for new value):",
@@ -4431,7 +4431,7 @@ doset() /* changing options via menu by Per Liboriussen */
(pass == DISP_IN_GAME) ? 0 : indexoffset); (pass == DISP_IN_GAME) ? 0 : indexoffset);
} }
any = zeroany; any = g.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Other settings:", MENU_UNSELECTED); "Other settings:", MENU_UNSELECTED);
@@ -4445,7 +4445,7 @@ doset() /* changing options via menu by Per Liboriussen */
} }
#ifdef PREFIXES_IN_USE #ifdef PREFIXES_IN_USE
any = zeroany; any = g.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Variable playground locations:", MENU_UNSELECTED); "Variable playground locations:", MENU_UNSELECTED);
@@ -4544,7 +4544,7 @@ int numtotal;
opt_idx = 0; opt_idx = 0;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(action_titles); i++) { for (i = 0; i < SIZE(action_titles); i++) {
char tmpbuf[BUFSZ]; char tmpbuf[BUFSZ];
@@ -4590,7 +4590,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(menutype); i++) { for (i = 0; i < SIZE(menutype); i++) {
style_name = menutype[i]; style_name = menutype[i];
/* note: separate `style_name' variable used /* note: separate `style_name' variable used
@@ -4610,7 +4610,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; paranoia[i].flagmask != 0; ++i) { for (i = 0; paranoia[i].flagmask != 0; ++i) {
if (paranoia[i].flagmask == PARANOID_BONES && !wizard) if (paranoia[i].flagmask == PARANOID_BONES && !wizard)
continue; continue;
@@ -4642,7 +4642,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(burdentype); i++) { for (i = 0; i < SIZE(burdentype); i++) {
burden_name = burdentype[i]; burden_name = burdentype[i];
any.a_int = i + 1; any.a_int = i + 1;
@@ -4673,7 +4673,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < NUM_DISCLOSURE_OPTIONS; i++) { for (i = 0; i < NUM_DISCLOSURE_OPTIONS; i++) {
Sprintf(buf, "%-12s[%c%c]", disclosure_names[i], Sprintf(buf, "%-12s[%c%c]", disclosure_names[i],
flags.end_disclose[i], disclosure_options[i]); flags.end_disclose[i], disclosure_options[i]);
@@ -4701,7 +4701,7 @@ boolean setinitial, setfromfile;
disclosure_names[i]); disclosure_names[i]);
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
/* 'y','n',and '+' work as alternate selectors; '-' doesn't */ /* 'y','n',and '+' work as alternate selectors; '-' doesn't */
any.a_char = DISCLOSE_NO_WITHOUT_PROMPT; any.a_char = DISCLOSE_NO_WITHOUT_PROMPT;
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
@@ -4750,7 +4750,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(runmodes); i++) { for (i = 0; i < SIZE(runmodes); i++) {
mode_name = runmodes[i]; mode_name = runmodes[i];
any.a_int = i + 1; any.a_int = i + 1;
@@ -4770,7 +4770,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
any.a_char = GPCOORDS_COMPASS; any.a_char = GPCOORDS_COMPASS;
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMPASS, add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMPASS,
0, ATR_NONE, "compass ('east' or '3s' or '2n,4w')", 0, ATR_NONE, "compass ('east' or '3s' or '2n,4w')",
@@ -4829,7 +4829,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
any.a_char = (GFILTER_NONE + 1); any.a_char = (GFILTER_NONE + 1);
add_menu(tmpwin, NO_GLYPH, &any, 'n', add_menu(tmpwin, NO_GLYPH, &any, 'n',
0, ATR_NONE, "no filtering", 0, ATR_NONE, "no filtering",
@@ -4860,7 +4860,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
any.a_char = 's'; any.a_char = 's';
add_menu(tmpwin, NO_GLYPH, &any, 's', 0, ATR_NONE, "single", add_menu(tmpwin, NO_GLYPH, &any, 's', 0, ATR_NONE, "single",
MENU_UNSELECTED); MENU_UNSELECTED);
@@ -4886,7 +4886,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(sortltype); i++) { for (i = 0; i < SIZE(sortltype); i++) {
sortl_name = sortltype[i]; sortl_name = sortltype[i];
any.a_char = *sortl_name; any.a_char = *sortl_name;
@@ -4913,7 +4913,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
any.a_int = ALIGN_TOP; any.a_int = ALIGN_TOP;
add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top", add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top",
MENU_UNSELECTED); MENU_UNSELECTED);
@@ -4948,7 +4948,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
for (i = 0; i < SIZE(npchoices); i++) { for (i = 0; i < SIZE(npchoices); i++) {
any.a_int = i + 1; any.a_int = i + 1;
add_menu(tmpwin, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE,
@@ -5024,7 +5024,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
mt_idx = 0; mt_idx = 0;
while (tmp) { while (tmp) {
mtype = msgtype2name(tmp->msgtype); mtype = msgtype2name(tmp->msgtype);
@@ -5092,7 +5092,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
mc_idx = 0; mc_idx = 0;
while (tmp) { while (tmp) {
sattr = attr2attrname(tmp->attr); sattr = attr2attrname(tmp->attr);
@@ -5167,7 +5167,7 @@ boolean setinitial, setfromfile;
if (numapes[pass] == 0) if (numapes[pass] == 0)
continue; continue;
ape = iflags.autopickup_exceptions[pass]; ape = iflags.autopickup_exceptions[pass];
any = zeroany; any = g.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
(pass == 0) ? "Never pickup" : "Always pickup", (pass == 0) ? "Never pickup" : "Always pickup",
MENU_UNSELECTED); MENU_UNSELECTED);
@@ -5246,7 +5246,7 @@ boolean setinitial, setfromfile;
Sprintf(fmtstr, "%%-%ds %%s", biggest + 5); Sprintf(fmtstr, "%%-%ds %%s", biggest + 5);
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; any = g.zeroany;
any.a_int = 1; any.a_int = 1;
add_menu(tmpwin, NO_GLYPH, &any, let++, 0, ATR_NONE, add_menu(tmpwin, NO_GLYPH, &any, let++, 0, ATR_NONE,
"Default Symbols", MENU_UNSELECTED); "Default Symbols", MENU_UNSELECTED);
@@ -5747,8 +5747,8 @@ char *buf;
#ifdef PREFIXES_IN_USE #ifdef PREFIXES_IN_USE
} else { } else {
for (i = 0; i < PREFIX_COUNT; ++i) for (i = 0; i < PREFIX_COUNT; ++i)
if (!strcmp(optname, fqn_prefix_names[i]) && fqn_prefix[i]) if (!strcmp(optname, fqn_prefix_names[i]) && g.fqn_prefix[i])
Sprintf(buf, "%s", fqn_prefix[i]); Sprintf(buf, "%s", g.fqn_prefix[i]);
#endif #endif
} }
@@ -6291,7 +6291,7 @@ char *class_select;
return 0; return 0;
accelerator = 0; accelerator = 0;
next_accelerator = 'a'; next_accelerator = 'a';
any = zeroany; any = g.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
while (*class_list) { while (*class_list) {
@@ -6333,7 +6333,7 @@ char *class_select;
} }
if (category == 1 && next_accelerator <= 'z') { if (category == 1 && next_accelerator <= 'z') {
/* for objects, add "A - ' ' all classes", after a separator */ /* for objects, add "A - ' ' all classes", after a separator */
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
any.a_int = (int) ' '; any.a_int = (int) ' ';
Sprintf(buf, "%c %s", (char) any.a_int, "all classes of objects"); Sprintf(buf, "%c %s", (char) any.a_int, "all classes of objects");
+3 -3
View File
@@ -1090,7 +1090,7 @@ coord *click_cc;
winid win; winid win;
anything any; anything any;
any = zeroany; any = g.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any.a_char = '/'; any.a_char = '/';
@@ -1108,7 +1108,7 @@ coord *click_cc;
flags.lootabc ? 0 : any.a_char, 'n', ATR_NONE, flags.lootabc ? 0 : any.a_char, 'n', ATR_NONE,
"something else (by symbol or name)", MENU_UNSELECTED); "something else (by symbol or name)", MENU_UNSELECTED);
if (!u.uswallow && !Hallucination) { if (!u.uswallow && !Hallucination) {
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
"", MENU_UNSELECTED); "", MENU_UNSELECTED);
/* these options work sensibly for the swallowed case, /* these options work sensibly for the swallowed case,
@@ -1955,7 +1955,7 @@ dohelp()
anything any; anything any;
int sel; int sel;
any = zeroany; /* zero all bits */ any = g.zeroany; /* zero all bits */
start_menu(tmpwin); start_menu(tmpwin);
for (i = 0; help_menu_items[i].text; i++) { for (i = 0; help_menu_items[i].text; i++) {
+20 -20
View File
@@ -869,7 +869,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; any = g.zeroany;
/* /*
* Run through the list and add the objects to the menu. If * Run through the list and add the objects to the menu. If
* INVORDER_SORT is set, we'll run through the list once for * INVORDER_SORT is set, we'll run through the list once for
@@ -892,7 +892,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
if ((*allow)(curr)) { if ((*allow)(curr)) {
/* if sorting, print type name (once only) */ /* if sorting, print type name (once only) */
if (sorted && !printed_type_name) { if (sorted && !printed_type_name) {
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
let_to_name(*pack, FALSE, let_to_name(*pack, FALSE,
((how != PICK_NONE) ((how != PICK_NONE)
@@ -917,14 +917,14 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
if (engulfer) { if (engulfer) {
char buf[BUFSZ]; char buf[BUFSZ];
any = zeroany; any = g.zeroany;
if (sorted && n > 1) { if (sorted && n > 1) {
Sprintf(buf, "%s Creatures", Sprintf(buf, "%s Creatures",
is_animal(u.ustuck->data) ? "Swallowed" : "Engulfed"); is_animal(u.ustuck->data) ? "Swallowed" : "Engulfed");
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
MENU_UNSELECTED); MENU_UNSELECTED);
} }
fake_hero_object = zeroobj; fake_hero_object = g.zeroobj;
fake_hero_object.quan = 1L; /* not strictly necessary... */ fake_hero_object.quan = 1L; /* not strictly necessary... */
any.a_obj = &fake_hero_object; any.a_obj = &fake_hero_object;
add_menu(win, mon_to_glyph(&g.youmonst), &any, add_menu(win, mon_to_glyph(&g.youmonst), &any,
@@ -959,7 +959,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
n = 0; n = 0;
} else if (k < n) { } else if (k < n) {
/* other stuff plus fake_hero; last slot is now unused */ /* other stuff plus fake_hero; last slot is now unused */
(*pick_list)[k].item = zeroany; (*pick_list)[k].item = g.zeroany;
(*pick_list)[k].count = 0L; (*pick_list)[k].count = 0L;
n = k; n = k;
} }
@@ -1046,20 +1046,20 @@ int how; /* type of query */
if (qflags & CHOOSE_ALL) { if (qflags & CHOOSE_ALL) {
invlet = 'A'; invlet = 'A';
any = zeroany; any = g.zeroany;
any.a_int = 'A'; any.a_int = 'A';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
(qflags & WORN_TYPES) ? "Auto-select every item being worn" (qflags & WORN_TYPES) ? "Auto-select every item being worn"
: "Auto-select every item", : "Auto-select every item",
MENU_UNSELECTED); MENU_UNSELECTED);
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
} }
if ((qflags & ALL_TYPES) && (ccount > 1)) { if ((qflags & ALL_TYPES) && (ccount > 1)) {
invlet = 'a'; invlet = 'a';
any = zeroany; any = g.zeroany;
any.a_int = ALL_TYPES_SELECTED; any.a_int = ALL_TYPES_SELECTED;
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
(qflags & WORN_TYPES) ? "All worn types" : "All types", (qflags & WORN_TYPES) ? "All worn types" : "All types",
@@ -1074,7 +1074,7 @@ int how; /* type of query */
if (ofilter && !(*ofilter)(curr)) if (ofilter && !(*ofilter)(curr))
continue; continue;
if (!collected_type_name) { if (!collected_type_name) {
any = zeroany; any = g.zeroany;
any.a_int = curr->oclass; any.a_int = curr->oclass;
add_menu( add_menu(
win, NO_GLYPH, &any, invlet++, win, NO_GLYPH, &any, invlet++,
@@ -1096,14 +1096,14 @@ int how; /* type of query */
if (do_unpaid || (qflags & BILLED_TYPES) || do_blessed || do_cursed if (do_unpaid || (qflags & BILLED_TYPES) || do_blessed || do_cursed
|| do_uncursed || do_buc_unknown) { || do_uncursed || do_buc_unknown) {
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED); add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
} }
/* unpaid items if there are any */ /* unpaid items if there are any */
if (do_unpaid) { if (do_unpaid) {
invlet = 'u'; invlet = 'u';
any = zeroany; any = g.zeroany;
any.a_int = 'u'; any.a_int = 'u';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "Unpaid items", add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "Unpaid items",
MENU_UNSELECTED); MENU_UNSELECTED);
@@ -1111,7 +1111,7 @@ int how; /* type of query */
/* billed items: checked by caller, so always include if BILLED_TYPES */ /* billed items: checked by caller, so always include if BILLED_TYPES */
if (qflags & BILLED_TYPES) { if (qflags & BILLED_TYPES) {
invlet = 'x'; invlet = 'x';
any = zeroany; any = g.zeroany;
any.a_int = 'x'; any.a_int = 'x';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Unpaid items already used up", MENU_UNSELECTED); "Unpaid items already used up", MENU_UNSELECTED);
@@ -1122,28 +1122,28 @@ int how; /* type of query */
reversing the usual sequence of 'U' and 'C' in BUCX */ reversing the usual sequence of 'U' and 'C' in BUCX */
if (do_blessed) { if (do_blessed) {
invlet = 'B'; invlet = 'B';
any = zeroany; any = g.zeroany;
any.a_int = 'B'; any.a_int = 'B';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items known to be Blessed", MENU_UNSELECTED); "Items known to be Blessed", MENU_UNSELECTED);
} }
if (do_cursed) { if (do_cursed) {
invlet = 'C'; invlet = 'C';
any = zeroany; any = g.zeroany;
any.a_int = 'C'; any.a_int = 'C';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items known to be Cursed", MENU_UNSELECTED); "Items known to be Cursed", MENU_UNSELECTED);
} }
if (do_uncursed) { if (do_uncursed) {
invlet = 'U'; invlet = 'U';
any = zeroany; any = g.zeroany;
any.a_int = 'U'; any.a_int = 'U';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items known to be Uncursed", MENU_UNSELECTED); "Items known to be Uncursed", MENU_UNSELECTED);
} }
if (do_buc_unknown) { if (do_buc_unknown) {
invlet = 'X'; invlet = 'X';
any = zeroany; any = g.zeroany;
any.a_int = 'X'; any.a_int = 'X';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items of unknown Bless/Curse status", MENU_UNSELECTED); "Items of unknown Bless/Curse status", MENU_UNSELECTED);
@@ -1947,7 +1947,7 @@ reverse_loot()
coffers->owt = weight(coffers); coffers->owt = weight(coffers);
coffers->cknown = 0; coffers->cknown = 0;
if (!coffers->olocked) { if (!coffers->olocked) {
boxdummy = zeroobj, boxdummy.otyp = SPE_WIZARD_LOCK; boxdummy = g.zeroobj, boxdummy.otyp = SPE_WIZARD_LOCK;
(void) boxlock(coffers, &boxdummy); (void) boxlock(coffers, &boxdummy);
} }
} else if (levl[x][y].looted != T_LOOTED } else if (levl[x][y].looted != T_LOOTED
@@ -2833,7 +2833,7 @@ boolean outokay, inokay, alreadyused, more_containers;
int n; int n;
const char *menuselector = flags.lootabc ? abc_chars : lootchars; const char *menuselector = flags.lootabc ? abc_chars : lootchars;
any = zeroany; any = g.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
@@ -2930,7 +2930,7 @@ dotip()
menu_item *pick_list = (menu_item *) 0; menu_item *pick_list = (menu_item *) 0;
struct obj dummyobj, *otmp; struct obj dummyobj, *otmp;
any = zeroany; any = g.zeroany;
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
@@ -2943,7 +2943,7 @@ dotip()
doname(cobj), MENU_UNSELECTED); doname(cobj), MENU_UNSELECTED);
} }
if (g.invent) { if (g.invent) {
any = zeroany; any = g.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
"", MENU_UNSELECTED); "", MENU_UNSELECTED);
any.a_obj = &dummyobj; any.a_obj = &dummyobj;
+1 -1
View File
@@ -2223,7 +2223,7 @@ more_dips:
if (!objects[old_otyp].oc_uname if (!objects[old_otyp].oc_uname
&& !objects[old_otyp].oc_name_known && old_dknown) { && !objects[old_otyp].oc_name_known && old_dknown) {
struct obj fakeobj; struct obj fakeobj;
fakeobj = zeroobj; fakeobj = g.zeroobj;
fakeobj.dknown = 1; fakeobj.dknown = 1;
fakeobj.otyp = old_otyp; fakeobj.otyp = old_otyp;
fakeobj.oclass = POTION_CLASS; fakeobj.oclass = POTION_CLASS;
+3 -3
View File
@@ -131,7 +131,7 @@ int nrect;
reg->n_monst = 0; reg->n_monst = 0;
reg->max_monst = 0; reg->max_monst = 0;
reg->monsters = (unsigned int *) 0; reg->monsters = (unsigned int *) 0;
reg->arg = zeroany; reg->arg = g.zeroany;
return reg; return reg;
} }
@@ -930,7 +930,7 @@ genericptr_t p2 UNUSED;
/* If it was a thick cloud, it dissipates a little first */ /* If it was a thick cloud, it dissipates a little first */
if (damage >= 5) { if (damage >= 5) {
damage /= 2; /* It dissipates, let's do less damage */ damage /= 2; /* It dissipates, let's do less damage */
reg->arg = zeroany; reg->arg = g.zeroany;
reg->arg.a_int = damage; reg->arg.a_int = damage;
reg->ttl = 2L; /* Here's the trick : reset ttl */ reg->ttl = 2L; /* Here's the trick : reset ttl */
return FALSE; /* THEN return FALSE, means "still there" */ return FALSE; /* THEN return FALSE, means "still there" */
@@ -1042,7 +1042,7 @@ int damage;
set_heros_fault(cloud); /* assume player has created it */ set_heros_fault(cloud); /* assume player has created it */
cloud->inside_f = INSIDE_GAS_CLOUD; cloud->inside_f = INSIDE_GAS_CLOUD;
cloud->expire_f = EXPIRE_GAS_CLOUD; cloud->expire_f = EXPIRE_GAS_CLOUD;
cloud->arg = zeroany; cloud->arg = g.zeroany;
cloud->arg.a_int = damage; cloud->arg.a_int = damage;
cloud->visible = TRUE; cloud->visible = TRUE;
cloud->glyph = cmap_to_glyph(damage ? S_poisoncloud : S_cloud); cloud->glyph = cmap_to_glyph(damage ? S_poisoncloud : S_cloud);
+1 -1
View File
@@ -1333,7 +1333,7 @@ winid bannerwin; /* if not WIN_ERR, clear window and show copyright in menu */
if (saved && *saved) { if (saved && *saved) {
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; /* no selection */ any = g.zeroany; /* no selection */
if (bannerwin != WIN_ERR) { if (bannerwin != WIN_ERR) {
/* for tty; erase copyright notice and redo it in the menu */ /* for tty; erase copyright notice and redo it in the menu */
clear_nhwindow(bannerwin); clear_nhwindow(bannerwin);
+1 -1
View File
@@ -1951,7 +1951,7 @@ boolean preselect;
break; break;
} }
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
if (constrainer) { if (constrainer) {
any.a_int = 0; any.a_int = 0;
/* use four spaces of padding to fake a grayed out menu choice */ /* use four spaces of padding to fake a grayed out menu choice */
+2 -2
View File
@@ -1497,7 +1497,7 @@ spellsortmenu()
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
for (i = 0; i < SIZE(spl_sortchoices); i++) { for (i = 0; i < SIZE(spl_sortchoices); i++) {
if (i == SORTRETAINORDER) { if (i == SORTRETAINORDER) {
@@ -1580,7 +1580,7 @@ int *spell_no;
tmpwin = create_nhwindow(NHW_MENU); tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin); start_menu(tmpwin);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
/* /*
* The correct spacing of the columns when not using * The correct spacing of the columns when not using
+1 -1
View File
@@ -129,7 +129,7 @@ unsigned entflags;
/* default to player's original monster type */ /* default to player's original monster type */
mdat = &mons[u.umonster]; mdat = &mons[u.umonster];
} }
fakemon = zeromonst; fakemon = g.zeromonst;
set_mon_data(&fakemon, mdat, -1); /* set up for goodpos */ set_mon_data(&fakemon, mdat, -1); /* set up for goodpos */
good_ptr = good; good_ptr = good;
+3 -3
View File
@@ -2105,7 +2105,7 @@ timer_element *timer;
{ {
anything arg_save; anything arg_save;
arg_save = zeroany; arg_save = g.zeroany;
switch (timer->kind) { switch (timer->kind) {
case TIMER_GLOBAL: case TIMER_GLOBAL:
case TIMER_LEVEL: case TIMER_LEVEL:
@@ -2119,7 +2119,7 @@ timer_element *timer;
else { else {
/* replace object pointer with id */ /* replace object pointer with id */
arg_save.a_obj = timer->arg.a_obj; arg_save.a_obj = timer->arg.a_obj;
timer->arg = zeroany; timer->arg = g.zeroany;
timer->arg.a_uint = (arg_save.a_obj)->o_id; timer->arg.a_uint = (arg_save.a_obj)->o_id;
timer->needs_fixup = 1; timer->needs_fixup = 1;
bwrite(fd, (genericptr_t) timer, sizeof(timer_element)); bwrite(fd, (genericptr_t) timer, sizeof(timer_element));
@@ -2134,7 +2134,7 @@ timer_element *timer;
else { else {
/* replace monster pointer with id */ /* replace monster pointer with id */
arg_save.a_monst = timer->arg.a_monst; arg_save.a_monst = timer->arg.a_monst;
timer->arg = zeroany; timer->arg = g.zeroany;
timer->arg.a_uint = (arg_save.a_monst)->m_id; timer->arg.a_uint = (arg_save.a_monst)->m_id;
timer->needs_fixup = 1; timer->needs_fixup = 1;
bwrite(fd, (genericptr_t) timer, sizeof(timer_element)); bwrite(fd, (genericptr_t) timer, sizeof(timer_element));
+1 -1
View File
@@ -3260,7 +3260,7 @@ domagictrap()
struct obj pseudo; struct obj pseudo;
long save_conf = HConfusion; long save_conf = HConfusion;
pseudo = zeroobj; /* neither cursed nor blessed, pseudo = g.zeroobj; /* neither cursed nor blessed,
and zero out oextra */ and zero out oextra */
pseudo.otyp = SCR_REMOVE_CURSE; pseudo.otyp = SCR_REMOVE_CURSE;
HConfusion = 0L; HConfusion = 0L;
+6 -6
View File
@@ -399,7 +399,7 @@ register struct monst *mtmp;
char mlet = mtmp->data->mlet; char mlet = mtmp->data->mlet;
g.propellor = &zeroobj; g.propellor = &g.zeroobj;
Oselect(EGG); /* cockatrice egg */ Oselect(EGG); /* cockatrice egg */
if (mlet == S_KOP) /* pies are first choice for Kops */ if (mlet == S_KOP) /* pies are first choice for Kops */
Oselect(CREAM_PIE); Oselect(CREAM_PIE);
@@ -458,7 +458,7 @@ register struct monst *mtmp;
} }
/* KMH -- This belongs here so darts will work */ /* KMH -- This belongs here so darts will work */
g.propellor = &zeroobj; g.propellor = &g.zeroobj;
prop = (objects[rwep[i]]).oc_skill; prop = (objects[rwep[i]]).oc_skill;
if (prop < 0) { if (prop < 0) {
@@ -483,7 +483,7 @@ register struct monst *mtmp;
g.propellor = 0; g.propellor = 0;
} }
/* propellor = obj, propellor to use /* propellor = obj, propellor to use
* propellor = &zeroobj, doesn't need a propellor * propellor = &g.zeroobj, doesn't need a propellor
* propellor = 0, needed one and didn't have one * propellor = 0, needed one and didn't have one
*/ */
if (g.propellor != 0) { if (g.propellor != 0) {
@@ -663,7 +663,7 @@ register struct monst *mon;
mon_nam(mon)); mon_nam(mon));
return 0; return 0;
} }
if (obj && obj != &zeroobj) { if (obj && obj != &g.zeroobj) {
struct obj *mw_tmp = MON_WEP(mon); struct obj *mw_tmp = MON_WEP(mon);
if (mw_tmp && mw_tmp->otyp == obj->otyp) { if (mw_tmp && mw_tmp->otyp == obj->otyp) {
/* already wielding it */ /* already wielding it */
@@ -1045,7 +1045,7 @@ enhance_weapon_skill()
/* start with a legend if any entries will be annotated /* start with a legend if any entries will be annotated
with "*" or "#" below */ with "*" or "#" below */
if (eventually_advance > 0 || maxxed_cnt > 0) { if (eventually_advance > 0 || maxxed_cnt > 0) {
any = zeroany; any = g.zeroany;
if (eventually_advance > 0) { if (eventually_advance > 0) {
Sprintf(buf, "(Skill%s flagged by \"*\" may be enhanced %s.)", Sprintf(buf, "(Skill%s flagged by \"*\" may be enhanced %s.)",
plur(eventually_advance), plur(eventually_advance),
@@ -1074,7 +1074,7 @@ enhance_weapon_skill()
for (i = skill_ranges[pass].first; i <= skill_ranges[pass].last; for (i = skill_ranges[pass].first; i <= skill_ranges[pass].last;
i++) { i++) {
/* Print headings for skill types */ /* Print headings for skill types */
any = zeroany; any = g.zeroany;
if (i == skill_ranges[pass].first) if (i == skill_ranges[pass].first)
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
skill_ranges[pass].name, MENU_UNSELECTED); skill_ranges[pass].name, MENU_UNSELECTED);
+3 -3
View File
@@ -74,7 +74,7 @@ STATIC_DCL int FDECL(ready_weapon, (struct obj *));
* functions can be used to put the remainder back in the slot. * functions can be used to put the remainder back in the slot.
* 4. Putting an item that was thrown and returned back into the slot. * 4. Putting an item that was thrown and returned back into the slot.
* 5. Emptying the slot, by passing a null object. NEVER pass * 5. Emptying the slot, by passing a null object. NEVER pass
* zeroobj! * g.zeroobj!
* *
* If the item is being moved from another slot, it is the caller's * If the item is being moved from another slot, it is the caller's
* responsibility to handle that. It's also the caller's responsibility * responsibility to handle that. It's also the caller's responsibility
@@ -285,7 +285,7 @@ dowield()
} }
/* Handle no object, or object in other slot */ /* Handle no object, or object in other slot */
if (wep == &zeroobj) if (wep == &g.zeroobj)
wep = (struct obj *) 0; wep = (struct obj *) 0;
else if (wep == uswapwep) else if (wep == uswapwep)
return doswapweapon(); return doswapweapon();
@@ -378,7 +378,7 @@ dowieldquiver()
if (!newquiver) { if (!newquiver) {
/* Cancelled */ /* Cancelled */
return 0; return 0;
} else if (newquiver == &zeroobj) { /* no object */ } else if (newquiver == &g.zeroobj) { /* no object */
/* Explicitly nothing */ /* Explicitly nothing */
if (uquiver) { if (uquiver) {
You("now have no ammunition readied."); You("now have no ammunition readied.");
+3 -3
View File
@@ -5208,7 +5208,7 @@ makewish()
int tries = 0; int tries = 0;
promptbuf[0] = '\0'; promptbuf[0] = '\0';
nothing = zeroobj; /* lint suppression; only its address matters */ nothing = g.zeroobj; /* lint suppression; only its address matters */
if (flags.verbose) if (flags.verbose)
You("may wish for an object."); You("may wish for an object.");
retry: retry:
@@ -5226,7 +5226,7 @@ retry:
} }
/* /*
* Note: if they wished for and got a non-object successfully, * Note: if they wished for and got a non-object successfully,
* otmp == &zeroobj. That includes gold, or an artifact that * otmp == &g.zeroobj. That includes gold, or an artifact that
* has been denied. Wishing for "nothing" requires a separate * has been denied. Wishing for "nothing" requires a separate
* value to remain distinct. * value to remain distinct.
*/ */
@@ -5248,7 +5248,7 @@ retry:
/* KMH, conduct */ /* KMH, conduct */
u.uconduct.wishes++; u.uconduct.wishes++;
if (otmp != &zeroobj) { if (otmp != &g.zeroobj) {
const char const char
*verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "slip" : "drop"), *verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "slip" : "drop"),
*oops_msg = (u.uswallow *oops_msg = (u.uswallow
+13 -13
View File
@@ -162,22 +162,22 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
(void) strncpy(g.hackdir, dir, PATHLEN - 1); (void) strncpy(g.hackdir, dir, PATHLEN - 1);
g.hackdir[PATHLEN - 1] = '\0'; g.hackdir[PATHLEN - 1] = '\0';
fqn_prefix[0] = (char *) alloc(strlen(g.hackdir) + 2); g.fqn_prefix[0] = (char *) alloc(strlen(g.hackdir) + 2);
Strcpy(fqn_prefix[0], g.hackdir); Strcpy(g.fqn_prefix[0], g.hackdir);
append_slash(fqn_prefix[0]); append_slash(g.fqn_prefix[0]);
for (prefcnt = 1; prefcnt < PREFIX_COUNT; prefcnt++) for (prefcnt = 1; prefcnt < PREFIX_COUNT; prefcnt++)
fqn_prefix[prefcnt] = fqn_prefix[0]; g.fqn_prefix[prefcnt] = g.fqn_prefix[0];
/* sysconf should be searched for in this location */ /* sysconf should be searched for in this location */
envp = nh_getenv("COMMONPROGRAMFILES"); envp = nh_getenv("COMMONPROGRAMFILES");
if (envp) { if (envp) {
if ((sptr = index(envp, ';')) != 0) if ((sptr = index(envp, ';')) != 0)
*sptr = '\0'; *sptr = '\0';
if (strlen(envp) > 0) { if (strlen(envp) > 0) {
fqn_prefix[SYSCONFPREFIX] = g.fqn_prefix[SYSCONFPREFIX] =
(char *) alloc(strlen(envp) + 10); (char *) alloc(strlen(envp) + 10);
Strcpy(fqn_prefix[SYSCONFPREFIX], envp); Strcpy(g.fqn_prefix[SYSCONFPREFIX], envp);
append_slash(fqn_prefix[SYSCONFPREFIX]); append_slash(g.fqn_prefix[SYSCONFPREFIX]);
Strcat(fqn_prefix[SYSCONFPREFIX], "NetHack\\"); Strcat(g.fqn_prefix[SYSCONFPREFIX], "NetHack\\");
} }
} }
@@ -198,7 +198,7 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
/* No SYSCF_FILE where there should be one, and /* No SYSCF_FILE where there should be one, and
without an installer, a user may not be able without an installer, a user may not be able
to place one there. So, let's try somewhere else... */ to place one there. So, let's try somewhere else... */
fqn_prefix[SYSCONFPREFIX] = fqn_prefix[0]; g.fqn_prefix[SYSCONFPREFIX] = g.fqn_prefix[0];
/* Is there a SYSCF_FILE there? */ /* Is there a SYSCF_FILE there? */
fd = open(fqname(SYSCF_FILE, SYSCONFPREFIX, 0), O_RDONLY); fd = open(fqname(SYSCF_FILE, SYSCONFPREFIX, 0), O_RDONLY);
@@ -216,10 +216,10 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
if ((sptr = index(envp, ';')) != 0) if ((sptr = index(envp, ';')) != 0)
*sptr = '\0'; *sptr = '\0';
if (strlen(envp) > 0) { if (strlen(envp) > 0) {
fqn_prefix[CONFIGPREFIX] = g.fqn_prefix[CONFIGPREFIX] =
(char *) alloc(strlen(envp) + 2); (char *) alloc(strlen(envp) + 2);
Strcpy(fqn_prefix[CONFIGPREFIX], envp); Strcpy(g.fqn_prefix[CONFIGPREFIX], envp);
append_slash(fqn_prefix[CONFIGPREFIX]); append_slash(g.fqn_prefix[CONFIGPREFIX]);
} }
} }
} }
@@ -900,7 +900,7 @@ gotlock:
#endif #endif
Sprintf(oops, "cannot creat file (%s.)\n%s\n%s\"%s\" exists?\n", fq_lock, Sprintf(oops, "cannot creat file (%s.)\n%s\n%s\"%s\" exists?\n", fq_lock,
strerror(ern), " Are you sure that the directory", strerror(ern), " Are you sure that the directory",
fqn_prefix[LEVELPREFIX]); g.fqn_prefix[LEVELPREFIX]);
raw_print(oops); raw_print(oops);
} else { } else {
if (write(fd, (char *) &g.hackpid, sizeof(g.hackpid)) if (write(fd, (char *) &g.hackpid, sizeof(g.hackpid))
+11 -11
View File
@@ -524,7 +524,7 @@ makepicks:
setup_rolemenu(win, TRUE, RACE, GEND, ALGN); setup_rolemenu(win, TRUE, RACE, GEND, ALGN);
/* add miscellaneous menu entries */ /* add miscellaneous menu entries */
role_menu_extra(ROLE_RANDOM, win, TRUE); role_menu_extra(ROLE_RANDOM, win, TRUE);
any = zeroany; /* separator, not a choice */ any = g.zeroany; /* separator, not a choice */
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
MENU_UNSELECTED); MENU_UNSELECTED);
role_menu_extra(RS_RACE, win, FALSE); role_menu_extra(RS_RACE, win, FALSE);
@@ -618,7 +618,7 @@ makepicks:
role_selection_prolog(RS_RACE, BASE_WINDOW); role_selection_prolog(RS_RACE, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
/* populate the menu with role choices */ /* populate the menu with role choices */
setup_racemenu(win, TRUE, ROLE, GEND, ALGN); setup_racemenu(win, TRUE, ROLE, GEND, ALGN);
/* add miscellaneous menu entries */ /* add miscellaneous menu entries */
@@ -711,7 +711,7 @@ makepicks:
role_selection_prolog(RS_GENDER, BASE_WINDOW); role_selection_prolog(RS_GENDER, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
/* populate the menu with gender choices */ /* populate the menu with gender choices */
setup_gendmenu(win, TRUE, ROLE, RACE, ALGN); setup_gendmenu(win, TRUE, ROLE, RACE, ALGN);
/* add miscellaneous menu entries */ /* add miscellaneous menu entries */
@@ -802,7 +802,7 @@ makepicks:
role_selection_prolog(RS_ALGNMNT, BASE_WINDOW); role_selection_prolog(RS_ALGNMNT, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
setup_algnmenu(win, TRUE, ROLE, RACE, GEND); setup_algnmenu(win, TRUE, ROLE, RACE, GEND);
role_menu_extra(ROLE_RANDOM, win, TRUE); role_menu_extra(ROLE_RANDOM, win, TRUE);
any.a_int = 0; /* separator, not a choice */ any.a_int = 0; /* separator, not a choice */
@@ -882,7 +882,7 @@ makepicks:
role_selection_prolog(ROLE_NONE, BASE_WINDOW); role_selection_prolog(ROLE_NONE, BASE_WINDOW);
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
any.a_int = 0; any.a_int = 0;
if (!roles[ROLE].name.f if (!roles[ROLE].name.f
&& (roles[ROLE].allow & ROLE_GENDMASK) && (roles[ROLE].allow & ROLE_GENDMASK)
@@ -984,7 +984,7 @@ reset_role_filtering()
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; any = g.zeroany;
/* no extra blank line preceding this entry; end_menu supplies one */ /* no extra blank line preceding this entry; end_menu supplies one */
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
@@ -1039,7 +1039,7 @@ int race, gend, algn; /* all ROLE_NONE for !filtering case */
boolean role_ok; boolean role_ok;
char thisch, lastch = '\0', rolenamebuf[50]; char thisch, lastch = '\0', rolenamebuf[50];
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) { for (i = 0; roles[i].name.m; i++) {
role_ok = ok_role(i, race, gend, algn); role_ok = ok_role(i, race, gend, algn);
if (filtering && !role_ok) if (filtering && !role_ok)
@@ -1082,7 +1082,7 @@ int role, gend, algn;
int i; int i;
char this_ch; char this_ch;
any = zeroany; any = g.zeroany;
for (i = 0; races[i].noun; i++) { for (i = 0; races[i].noun; i++) {
race_ok = ok_race(role, i, gend, algn); race_ok = ok_race(role, i, gend, algn);
if (filtering && !race_ok) if (filtering && !race_ok)
@@ -1115,7 +1115,7 @@ int role, race, algn;
int i; int i;
char this_ch; char this_ch;
any = zeroany; any = g.zeroany;
for (i = 0; i < ROLE_GENDERS; i++) { for (i = 0; i < ROLE_GENDERS; i++) {
gend_ok = ok_gend(role, race, i, algn); gend_ok = ok_gend(role, race, i, algn);
if (filtering && !gend_ok) if (filtering && !gend_ok)
@@ -1146,7 +1146,7 @@ int role, race, gend;
int i; int i;
char this_ch; char this_ch;
any = zeroany; any = g.zeroany;
for (i = 0; i < ROLE_ALIGNS; i++) { for (i = 0; i < ROLE_ALIGNS; i++) {
algn_ok = ok_align(role, race, gend, i); algn_ok = ok_align(role, race, gend, i);
if (filtering && !algn_ok) if (filtering && !algn_ok)
@@ -2901,7 +2901,7 @@ const char *prompt; /* prompt to for menu */
if (prompt) { if (prompt) {
anything any; anything any;
any = zeroany; /* not selectable */ any = g.zeroany; /* not selectable */
tty_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, "", tty_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
MENU_UNSELECTED); MENU_UNSELECTED);
tty_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, prompt, tty_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, prompt,
+4 -4
View File
@@ -403,7 +403,7 @@ prompt_for_player_selection(void)
/* Prompt for a role */ /* Prompt for a role */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) { for (i = 0; roles[i].name.m; i++) {
if (ok_role(i, flags.initrace, flags.initgend, if (ok_role(i, flags.initrace, flags.initgend,
flags.initalign)) { flags.initalign)) {
@@ -495,7 +495,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
for (i = 0; races[i].noun; i++) for (i = 0; races[i].noun; i++)
if (ok_race(flags.initrole, i, flags.initgend, if (ok_race(flags.initrole, i, flags.initgend,
flags.initalign)) { flags.initalign)) {
@@ -569,7 +569,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_GENDERS; i++) for (i = 0; i < ROLE_GENDERS; i++)
if (ok_gend(flags.initrole, flags.initrace, i, if (ok_gend(flags.initrole, flags.initrace, i,
flags.initalign)) { flags.initalign)) {
@@ -642,7 +642,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */ /* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */
win = create_nhwindow(NHW_MENU); win = create_nhwindow(NHW_MENU);
start_menu(win); start_menu(win);
any = zeroany; /* zero out all bits */ any = g.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_ALIGNS; i++) for (i = 0; i < ROLE_ALIGNS; i++)
if (ok_align(flags.initrole, flags.initrace, if (ok_align(flags.initrole, flags.initrace,
flags.initgend, i)) { flags.initgend, i)) {