Merge branch 'NetHack-3.6.2'

This commit is contained in:
nhmall
2019-01-09 07:24:18 -05:00
39 changed files with 239 additions and 230 deletions
+9 -4
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 decl.h $NHDT-Date: 1496531104 2017/06/03 23:05:04 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.82 $ */
/* NetHack 3.6 decl.h $NHDT-Date: 1547025154 2019/01/09 09:12:34 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.147 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2007. */
/* NetHack may be freely redistributed. See license for details. */
@@ -751,9 +751,6 @@ struct instance_globals {
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 */
#if defined(UNIX) || defined(VMS)
int locknum; /* max num of simultaneous users */
#endif
@@ -1174,6 +1171,14 @@ struct instance_globals {
E struct instance_globals g;
struct const_globals {
const struct obj zeroobj; /* used to zero out a struct obj */
const struct monst zeromonst; /* used to zero out a struct monst */
const anything zeroany; /* used to zero out union any */
};
E const struct const_globals cg;
#undef E
#endif /* DECL_H */
+2 -2
View File
@@ -2287,7 +2287,7 @@ struct obj *obj;
return;
consume_obj_charge(obj, TRUE);
if (otmp != &g.zeroobj) {
if (otmp != &cg.zeroobj) {
You("cover %s with a thick layer of grease.", yname(otmp));
otmp->greased = 1;
if (obj->cursed && !nohands(g.youmonst.data)) {
@@ -3148,7 +3148,7 @@ struct obj *obj;
char buf[BUFSZ];
menu_item *selected;
any = g.zeroany; /* set all bits to zero */
any = cg.zeroany; /* set all bits to zero */
any.a_int = 1; /* use index+1 (cant use 0) as identifier */
start_menu(tmpwin);
any.a_int++;
+2 -2
View File
@@ -1437,7 +1437,7 @@ struct obj *obj;
struct obj pseudo;
pseudo =
g.zeroobj; /* neither cursed nor blessed, zero oextra too */
cg.zeroobj; /* neither cursed nor blessed, zero oextra too */
pseudo.otyp = SCR_TAMING;
(void) seffects(&pseudo);
break;
@@ -1512,7 +1512,7 @@ struct obj *obj;
winid tmpwin = create_nhwindow(NHW_MENU);
anything any;
any = g.zeroany; /* set all bits to zero */
any = cg.zeroany; /* set all bits to zero */
start_menu(tmpwin);
/* use index+1 (cant use 0) as identifier */
for (i = num_ok_dungeons = 0; i < g.n_dgns; i++) {
+24 -24
View File
@@ -922,7 +922,7 @@ init_blstats()
#endif
g.blstats[i][j] = initblstats[j];
g.blstats[i][j].a = g.zeroany;
g.blstats[i][j].a = cg.zeroany;
if (g.blstats[i][j].valwidth) {
g.blstats[i][j].val = (char *) alloc(g.blstats[i][j].valwidth);
g.blstats[i][j].val[0] = '\0';
@@ -1759,7 +1759,7 @@ int arrmin, arrmax;
start_menu(tmpwin);
for (i = arrmin; i < arrmax; i++) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = i + adj;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
arr[i], MENU_UNSELECTED);
@@ -2131,7 +2131,7 @@ query_conditions()
start_menu(tmpwin);
for (i = 0; i < SIZE(valid_conditions); i++) {
any = g.zeroany;
any = cg.zeroany;
any.a_ulong = valid_conditions[i].bitmask;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
valid_conditions[i].id, MENU_UNSELECTED);
@@ -2692,7 +2692,7 @@ status_hilite_menu_choose_field()
&& !g.blstats[0][BL_SCORE].thresholds)
continue;
#endif
any = g.zeroany;
any = cg.zeroany;
any.a_int = (i + 1);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
initblstats[i].fldname, MENU_UNSELECTED);
@@ -2730,7 +2730,7 @@ int fld;
start_menu(tmpwin);
if (fld != BL_CONDITION) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = onlybeh = BL_TH_ALWAYS_HILITE;
Sprintf(buf, "Always highlight %s", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 'a', 0, ATR_NONE,
@@ -2739,7 +2739,7 @@ int fld;
}
if (fld == BL_CONDITION) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = onlybeh = BL_TH_CONDITION;
add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, ATR_NONE,
"Bitmask of conditions", MENU_UNSELECTED);
@@ -2747,7 +2747,7 @@ int fld;
}
if (fld != BL_CONDITION) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = onlybeh = BL_TH_UPDOWN;
Sprintf(buf, "%s value changes", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 'c', 0, ATR_NONE,
@@ -2757,7 +2757,7 @@ int fld;
if (fld != BL_CAP && fld != BL_HUNGER
&& (at == ANY_INT || at == ANY_LONG)) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = onlybeh = BL_TH_VAL_ABSOLUTE;
add_menu(tmpwin, NO_GLYPH, &any, 'n', 0, ATR_NONE,
"Number threshold", MENU_UNSELECTED);
@@ -2765,7 +2765,7 @@ int fld;
}
if (initblstats[fld].idxmax >= 0) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = onlybeh = BL_TH_VAL_PERCENTAGE;
add_menu(tmpwin, NO_GLYPH, &any, 'p', 0, ATR_NONE,
"Percentage threshold", MENU_UNSELECTED);
@@ -2774,7 +2774,7 @@ int fld;
if (initblstats[fld].anytype == ANY_STR
|| fld == BL_CAP || fld == BL_HUNGER) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = onlybeh = BL_TH_TEXTMATCH;
Sprintf(buf, "%s text match", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE,
@@ -2822,7 +2822,7 @@ boolean ltok, gtok;
(fld == BL_AC) ? "Better (lower)" : "Less", str);
else
Sprintf(buf, "Value goes down");
any = g.zeroany;
any = cg.zeroany;
any.a_int = 10 + LT_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED);
@@ -2830,7 +2830,7 @@ boolean ltok, gtok;
if (str) {
Sprintf(buf, "%s or %s",
str, (fld == BL_AC) ? "better (lower)" : "less");
any = g.zeroany;
any = cg.zeroany;
any.a_int = 10 + LE_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED);
@@ -2841,7 +2841,7 @@ boolean ltok, gtok;
Sprintf(buf, "Exactly %s", str);
else
Sprintf(buf, "Value changes");
any = g.zeroany;
any = cg.zeroany;
any.a_int = 10 + EQ_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED);
@@ -2850,7 +2850,7 @@ boolean ltok, gtok;
if (str) {
Sprintf(buf, "%s or %s",
str, (fld == BL_AC) ? "worse (higher)" : "more");
any = g.zeroany;
any = cg.zeroany;
any.a_int = 10 + GE_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED);
@@ -2861,7 +2861,7 @@ boolean ltok, gtok;
(fld == BL_AC) ? "Worse (higher)" : "More", str);
else
Sprintf(buf, "Value goes up");
any = g.zeroany;
any = cg.zeroany;
any.a_int = 10 + GT_VALUE;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
buf, MENU_UNSELECTED);
@@ -2993,7 +2993,7 @@ choose_value:
: (lt_gt_eq == EQ_VALUE) ? "="
: ""; /* didn't specify lt_gt_eq with number */
aval = g.zeroany;
aval = cg.zeroany;
dt = percent ? ANY_INT : initblstats[fld].anytype;
(void) s_to_anything(&aval, numstart, dt);
@@ -3363,7 +3363,7 @@ int fld;
hlstr = status_hilite_str;
while (hlstr) {
if (hlstr->fld == fld) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = hlstr->id;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
hlstr->str, MENU_UNSELECTED);
@@ -3371,17 +3371,17 @@ int fld;
hlstr = hlstr->next;
}
} else {
any = g.zeroany;
any = cg.zeroany;
Sprintf(buf, "No current hilites for %s", initblstats[fld].fldname);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, MENU_UNSELECTED);
}
/* separator line */
any = g.zeroany;
any = cg.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
if (count) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = -1;
add_menu(tmpwin, NO_GLYPH, &any, 'X', 0, ATR_NONE,
"Remove selected hilites", MENU_UNSELECTED);
@@ -3397,7 +3397,7 @@ int fld;
} else
#endif
{
any = g.zeroany;
any = cg.zeroany;
any.a_int = -2;
add_menu(tmpwin, NO_GLYPH, &any, 'Z', 0, ATR_NONE,
"Add a new hilite", MENU_UNSELECTED);
@@ -3493,12 +3493,12 @@ shlmenu_redo:
status_hilite_linestr_gather();
countall = status_hilite_linestr_countfield(BL_FLUSH);
if (countall) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = -1;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"View all hilites in config format", MENU_UNSELECTED);
any = g.zeroany;
any = cg.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
}
@@ -3514,7 +3514,7 @@ shlmenu_redo:
if (initblstats[i].fld == BL_SCORE && !count)
continue;
#endif
any = g.zeroany;
any = cg.zeroany;
any.a_int = i + 1;
Sprintf(buf, "%-18s", initblstats[i].fldname);
if (count)
+8 -8
View File
@@ -372,7 +372,7 @@ doextlist(VOID_ARGS)
while (redisplay) {
redisplay = FALSE;
any = g.zeroany;
any = cg.zeroany;
start_menu(menuwin);
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"Extended Commands List", MENU_UNSELECTED);
@@ -416,7 +416,7 @@ doextlist(VOID_ARGS)
: "Show all alphabetically, including debugging commands",
MENU_UNSELECTED);
}
any = g.zeroany;
any = cg.zeroany;
add_menu(menuwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"", MENU_UNSELECTED);
menushown[0] = menushown[1] = 0;
@@ -557,7 +557,7 @@ extcmd_via_menu()
biggest = 0;
while (!ret) {
i = n = 0;
any = g.zeroany;
any = cg.zeroany;
/* populate choices */
for (efp = extcmdlist; efp->ef_txt; efp++) {
if ((efp->flags & CMD_NOT_AVAILABLE)
@@ -1326,7 +1326,7 @@ wiz_intrinsic(VOID_ARGS)
const char *propname;
menu_item *pick_list = (menu_item *) 0;
any = g.zeroany;
any = cg.zeroany;
win = create_nhwindow(NHW_MENU);
start_menu(win);
for (i = 0; (propname = propertynames[i].prop_name) != 0; ++i) {
@@ -1465,7 +1465,7 @@ doterrain(VOID_ARGS)
*/
men = create_nhwindow(NHW_MENU);
start_menu(men);
any = g.zeroany;
any = cg.zeroany;
any.a_int = 1;
add_menu(men, NO_GLYPH, &any, 0, 0, ATR_NONE,
"known map without monsters, objects, and traps",
@@ -1560,7 +1560,7 @@ const char *buf;
if (g.en_via_menu) {
anything any;
any = g.zeroany;
any = cg.zeroany;
add_menu(g.en_win, NO_GLYPH, &any, 0, 0, ATR_NONE, buf, FALSE);
} else
putstr(g.en_win, 0, buf);
@@ -2917,7 +2917,7 @@ minimal_enlightenment()
fmtstr = iflags.menu_tab_sep ? tabbed_fmtstr : untabbed_fmtstr;
deity_fmtstr = iflags.menu_tab_sep ? tabbed_deity_fmtstr
: untabbed_deity_fmtstr;
any = g.zeroany;
any = cg.zeroany;
buf[0] = buf2[0] = '\0';
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
@@ -5111,7 +5111,7 @@ const char *text;
anything any;
if ((ch = cmd_from_func(func)) != '\0') {
any = g.zeroany;
any = cg.zeroany;
any.a_nfunc = func;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, text, MENU_UNSELECTED);
}
+7 -4
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 decl.c $NHDT-Date: 1446975463 2015/11/08 09:37:43 $ $NHDT-Branch: master $:$NHDT-Revision: 1.62 $ */
/* NetHack 3.6 decl.c $NHDT-Date: 1547025164 2019/01/09 09:12:44 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.141 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Michael Allison, 2009. */
/* NetHack may be freely redistributed. See license for details. */
@@ -318,9 +318,6 @@ const struct instance_globals g_init = {
DUMMY, /* context */
DUMMY, /* fqn_prefix */
DUMMY, /* tc_gbl_data */
DUMMY, /* zeroobj */
DUMMY, /* zeromonst */
DUMMY, /* zeronay */
#if defined(UNIX) || defined(VMS)
0, /* locknum */
#endif
@@ -683,6 +680,12 @@ const struct instance_globals g_init = {
struct instance_globals g;
const struct const_globals cg = {
DUMMY, /* zeroobj */
DUMMY, /* zeromonst */
DUMMY, /* zeroany */
};
#define ZERO(x) memset(&x, 0, sizeof(x))
void
+4 -4
View File
@@ -404,7 +404,7 @@ outgoldmap:
continue; /* probably overkill here */
temp = 0;
if (findgold(mtmp->minvent) || monsndx(mtmp->data) == PM_GOLD_GOLEM) {
gold = g.zeroobj; /* ensure oextra is cleared too */
gold = cg.zeroobj; /* ensure oextra is cleared too */
gold.otyp = GOLD_PIECE;
gold.quan = (long) rnd(10); /* usually more than 1 */
gold.ox = mtmp->mx;
@@ -730,7 +730,7 @@ int class; /* an object class, 0 for all */
&& (!class || class == objects[mtmp->mappearance].oc_class)) {
struct obj temp;
temp = g.zeroobj;
temp = cg.zeroobj;
temp.otyp = mtmp->mappearance; /* needed for obj_to_glyph() */
temp.quan = 1L;
temp.ox = mtmp->mx;
@@ -741,7 +741,7 @@ int class; /* an object class, 0 for all */
&& (!class || class == COIN_CLASS)) {
struct obj gold;
gold = g.zeroobj; /* ensure oextra is cleared too */
gold = cg.zeroobj; /* ensure oextra is cleared too */
gold.otyp = GOLD_PIECE;
gold.quan = (long) rnd(10); /* usually more than 1 */
gold.ox = mtmp->mx;
@@ -857,7 +857,7 @@ int src_cursed;
if (Hallucination || src_cursed) {
struct obj obj; /* fake object */
obj = g.zeroobj;
obj = cg.zeroobj;
if (trap) {
obj.ox = trap->tx;
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(). */
struct obj obj;
obj = g.zeroobj;
obj = cg.zeroobj;
obj.ox = x;
obj.oy = y;
obj.otyp = mon->mappearance;
+2 -2
View File
@@ -582,7 +582,7 @@ int gloc;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
/* gather_locs returns array[0] == you. skip it. */
for (i = 1; i < gcount; i++) {
@@ -1334,7 +1334,7 @@ docallcmd()
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany;
any = cg.zeroany;
any.a_char = 'm'; /* group accelerator 'C' */
add_menu(win, NO_GLYPH, &any, abc ? 0 : any.a_char, 'C', ATR_NONE,
"a monster", MENU_UNSELECTED);
+1 -1
View File
@@ -26,7 +26,7 @@ struct monst *mon;
{
struct obj *obj, *wep, dummy, *pickaxe, *unihorn, *key;
dummy = g.zeroobj;
dummy = cg.zeroobj;
dummy.otyp = GOLD_PIECE; /* not STRANGE_OBJECT or tools of interest */
dummy.oartifact = 1; /* so real artifact won't override "don't keep it" */
pickaxe = unihorn = key = (struct obj *) 0;
+2 -2
View File
@@ -1752,7 +1752,7 @@ boolean unreachable;
lchoices->lev[lchoices->idx] = lvl_p->dlevel;
lchoices->dgn[lchoices->idx] = lvl_p->dnum;
lchoices->playerlev[lchoices->idx] = depth(lvl_p);
any = g.zeroany;
any = cg.zeroany;
if (unreachable) {
/* not selectable, but still consumes next menuletter;
prepend padding in place of missing menu selector */
@@ -1872,7 +1872,7 @@ xchar *rdgn;
dptr->depth_start + dptr->entry_lev - 1);
}
if (bymenu) {
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
MENU_UNSELECTED);
} else
+1 -1
View File
@@ -1734,7 +1734,7 @@ set_vanq_order()
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
for (i = 0; i < SIZE(vanqorders); i++) {
if (i == VANQ_ALPHA_MIX || i == VANQ_MCLS_HTOL) /* skip these */
continue;
+4 -4
View File
@@ -539,10 +539,10 @@ doengrave()
*/
otmp = getobj(styluses, "write with");
if (!otmp) /* otmp == g.zeroobj if fingers */
if (!otmp) /* otmp == cg.zeroobj if fingers */
return 0;
if (otmp == &g.zeroobj) {
if (otmp == &cg.zeroobj) {
Strcat(strcpy(fbuf, "your "), body_part(FINGERTIP));
writer = fbuf;
} else
@@ -571,7 +571,7 @@ doengrave()
return 0;
}
if (IS_GRAVE(levl[u.ux][u.uy].typ)) {
if (otmp == &g.zeroobj) { /* using only finger */
if (otmp == &cg.zeroobj) { /* using only finger */
You("would only make a small smudge on the %s.",
surface(u.ux, u.uy));
return 0;
@@ -1008,7 +1008,7 @@ doengrave()
}
/* Tell adventurer what is going on */
if (otmp != &g.zeroobj)
if (otmp != &cg.zeroobj)
You("%s the %s with %s.", everb, eloc, doname(otmp));
else
You("%s the %s with your %s.", everb, eloc, body_part(FINGERTIP));
+2 -2
View File
@@ -2883,7 +2883,7 @@ STATIC_DCL void
wizkit_addinv(obj)
struct obj *obj;
{
if (!obj || obj == &g.zeroobj)
if (!obj || obj == &cg.zeroobj)
return;
/* subset of starting inventory pre-ID */
@@ -2913,7 +2913,7 @@ char *buf;
struct obj *otmp = readobjnam(buf, (struct obj *) 0);
if (otmp) {
if (otmp != &g.zeroobj)
if (otmp != &cg.zeroobj)
wizkit_addinv(otmp);
} else {
/* .60 limits output line width to 79 chars */
+4 -4
View File
@@ -28,7 +28,7 @@ anything *
uint_to_any(ui)
unsigned ui;
{
g.tmp_anything = g.zeroany;
g.tmp_anything = cg.zeroany;
g.tmp_anything.a_uint = ui;
return &g.tmp_anything;
}
@@ -37,7 +37,7 @@ anything *
long_to_any(lng)
long lng;
{
g.tmp_anything = g.zeroany;
g.tmp_anything = cg.zeroany;
g.tmp_anything.a_long = lng;
return &g.tmp_anything;
}
@@ -46,7 +46,7 @@ anything *
monst_to_any(mtmp)
struct monst *mtmp;
{
g.tmp_anything = g.zeroany;
g.tmp_anything = cg.zeroany;
g.tmp_anything.a_monst = mtmp;
return &g.tmp_anything;
}
@@ -55,7 +55,7 @@ anything *
obj_to_any(obj)
struct obj *obj;
{
g.tmp_anything = g.zeroany;
g.tmp_anything = cg.zeroany;
g.tmp_anything.a_obj = obj;
return &g.tmp_anything;
}
+18 -18
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 invent.c $NHDT-Date: 1546770988 2019/01/06 10:36:28 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.249 $ */
/* NetHack 3.6 invent.c $NHDT-Date: 1547025166 2019/01/09 09:12:46 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.250 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
@@ -421,7 +421,7 @@ const genericptr vptr2;
return val2 - val1; /* bigger is better */
}
tiebreak:
tiebreak:
/* They're identical, as far as we're concerned. We want
to force a deterministic order, and do so by producing a
stable sort: maintain the original order of equal items. */
@@ -933,7 +933,7 @@ struct obj *obj;
&& obj->oartifact != ART_MJOLLNIR
&& (throwing_weapon(obj) || is_ammo(obj)))
setuqwep(obj);
added:
added:
addinv_core2(obj);
carry_obj_effects(obj); /* carrying affects the obj */
update_inventory();
@@ -1409,7 +1409,7 @@ const char *action;
* getobj returns:
* struct obj *xxx: object to do something with.
* (struct obj *) 0 error return: no object.
* &g.zeroobj explicitly no object (as in w-).
* &cg.zeroobj explicitly no object (as in w-).
!!!! test if gold can be used in unusual ways (eaten etc.)
!!!! may be able to remove "usegold"
*/
@@ -1697,9 +1697,9 @@ register const char *let, *word;
You("mime %s something%s%s.", ing_suffix(bp), suf ? " " : "",
suf ? suf : "");
}
return (allownone ? &g.zeroobj : (struct obj *) 0);
return (allownone ? (struct obj *) &cg.zeroobj : (struct obj *) 0);
}
redo_menu:
redo_menu:
/* since gold is now kept in inventory, we need to do processing for
select-from-invent before checking whether gold has been picked */
if (ilet == '?' || ilet == '*') {
@@ -1730,7 +1730,7 @@ redo_menu:
if (!ilet)
continue;
if (ilet == HANDS_SYM)
return &g.zeroobj;
return (struct obj *) &cg.zeroobj; /* cast away 'const' */
if (ilet == '\033') {
if (flags.verbose)
pline1(Never_mind);
@@ -2134,7 +2134,7 @@ int FDECL((*fn), (OBJ_P)), FDECL((*ckfn), (OBJ_P));
* For example, if a person specifies =/ then first all rings
* will be asked about followed by all wands. -dgk
*/
nextclass:
nextclass:
ilet = 'a' - 1;
if (*objchn && (*objchn)->oclass == COIN_CLASS)
ilet--; /* extra iteration */
@@ -2244,7 +2244,7 @@ nextclass:
pline("That was all.");
else if (!dud && !cnt)
pline("No applicable objects.");
ret:
ret:
unsortloot(&sortedchn);
bypass_objlist(*objchn, FALSE);
return cnt;
@@ -2620,7 +2620,7 @@ long *out_cnt;
(boolean FDECL((*), (OBJ_P))) 0);
start_menu(win);
any = g.zeroany;
any = cg.zeroany;
if (wizard && iflags.override_ID) {
int unid_cnt;
char prompt[QBUFSZ];
@@ -2660,7 +2660,7 @@ long *out_cnt;
add_menu(win, NO_GLYPH, &any, HANDS_SYM, 0, ATR_NONE,
xtra_choice, MENU_UNSELECTED);
}
nextclass:
nextclass:
classcount = 0;
for (srtinv = sortedinvent; (otmp = srtinv->obj) != 0; ++srtinv) {
if (lets && !index(lets, otmp->invlet))
@@ -2668,7 +2668,7 @@ nextclass:
if (!flags.sortpack || otmp->oclass == *invlet) {
if (wizid && !not_fully_identified(otmp))
continue;
any = g.zeroany; /* all bits zero */
any = cg.zeroany; /* all bits zero */
ilet = otmp->invlet;
if (flags.sortpack && !classcount) {
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
@@ -2694,7 +2694,7 @@ nextclass:
}
}
if (iflags.force_invmenu && lets && want_reply) {
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Special", MENU_UNSELECTED);
any.a_char = '*';
@@ -2707,7 +2707,7 @@ nextclass:
recognized via any.a_char still being zero; the n==0 case above
gets skipped for perm_invent), put something into the menu */
if (iflags.perm_invent && !lets && !any.a_char) {
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, 0,
not_carrying_anything, MENU_UNSELECTED);
want_reply = FALSE;
@@ -2779,7 +2779,7 @@ char avoidlet;
win = create_nhwindow(NHW_MENU);
start_menu(win);
while (!invdone) {
any = g.zeroany; /* set all bits to zero */
any = cg.zeroany; /* set all bits to zero */
classcount = 0;
for (otmp = g.invent; otmp; otmp = otmp->nobj) {
ilet = otmp->invlet;
@@ -2787,7 +2787,7 @@ char avoidlet;
continue;
if (!flags.sortpack || otmp->oclass == *invlet) {
if (flags.sortpack && !classcount) {
any = g.zeroany; /* zero */
any = cg.zeroany; /* zero */
add_menu(win, NO_GLYPH, &any, 0, 0,
iflags.menu_headings,
let_to_name(*invlet, FALSE, FALSE),
@@ -4086,7 +4086,7 @@ doorganize() /* inventory organizer by Del Lamb */
compatible stacks get collected along the way,
but splitting to same slot is not */
|| (splitting && let == obj->invlet)) {
noadjust:
noadjust:
if (splitting)
(void) merged(&splitting, &obj);
if (!ever_mind)
@@ -4215,7 +4215,7 @@ const char *hdr, *txt;
anything any;
menu_item *selected;
any = g.zeroany;
any = cg.zeroany;
win = create_nhwindow(NHW_MENU);
start_menu(win);
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;
anything tmp_id;
tmp_id = g.zeroany;
tmp_id = cg.zeroany;
/* need to be prepared for dealing a with light source which
has only been partially restored during a level change
(in particular: chameleon vs prot. from shape changers) */
@@ -443,14 +443,14 @@ light_source *ls;
arg_save = ls->id;
if (ls->type == LS_OBJECT) {
otmp = ls->id.a_obj;
ls->id = g.zeroany;
ls->id = cg.zeroany;
ls->id.a_uint = otmp->o_id;
if (find_oid((unsigned) ls->id.a_uint) != otmp)
impossible("write_ls: can't find obj #%u!",
ls->id.a_uint);
} else { /* ls->type == LS_MONSTER */
mtmp = (struct monst *) ls->id.a_monst;
ls->id = g.zeroany;
ls->id = cg.zeroany;
ls->id.a_uint = mtmp->m_id;
if (find_mid((unsigned) ls->id.a_uint, FM_EVERYWHERE) != mtmp)
impossible("write_ls: can't find mon #%u!",
+1 -1
View File
@@ -1181,7 +1181,7 @@ int mmflags;
}
(void) propagate(mndx, countbirth, FALSE);
mtmp = newmonst();
*mtmp = g.zeromonst; /* clear all entries in structure */
*mtmp = cg.zeromonst; /* clear all entries in structure */
if (mmflags & MM_EGD)
newegd(mtmp);
+2 -2
View File
@@ -113,7 +113,7 @@ struct obj *otmp;
if (!OMONST(otmp)) {
struct monst *m = newmonst();
*m = g.zeromonst;
*m = cg.zeromonst;
OMONST(otmp) = m;
}
}
@@ -779,7 +779,7 @@ boolean artif;
char let = objects[otyp].oc_class;
otmp = newobj();
*otmp = g.zeroobj;
*otmp = cg.zeroobj;
otmp->age = g.monstermoves;
otmp->o_id = g.context.ident++;
if (!otmp->o_id)
+1 -1
View File
@@ -335,7 +335,7 @@ boolean special;
int pm, x, y;
struct monst fakemon;
fakemon = g.zeromonst;
fakemon = cg.zeromonst;
while (num) {
int tryct = 0;
+9 -9
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 muse.c $NHDT-Date: 1539804880 2018/10/17 19:34:40 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.85 $ */
/* NetHack 3.6 muse.c $NHDT-Date: 1547025167 2019/01/09 09:12:47 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.92 $ */
/* Copyright (C) 1990 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
@@ -458,7 +458,7 @@ struct monst *mtmp;
}
}
}
toot:
toot:
;
}
@@ -566,7 +566,7 @@ struct monst *mtmp;
g.m.has_defense = MUSE_SCR_CREATE_MONSTER;
}
}
botm:
botm:
return (boolean) !!g.m.has_defense;
#undef nomore
}
@@ -629,7 +629,7 @@ struct monst *mtmp;
mzapmsg(mtmp, otmp, TRUE);
otmp->spe--;
how = WAN_TELEPORTATION;
mon_tele:
mon_tele:
if (tele_restrict(mtmp)) { /* mysterious force... */
if (vismon && how) /* mentions 'teleport' */
makeknown(how);
@@ -867,7 +867,7 @@ struct monst *mtmp;
case MUSE_SSTAIRS:
m_flee(mtmp);
if (ledger_no(&u.uz) == 1) {
escape:
escape:
/* Monsters without the Amulet escape the dungeon and
* are gone for good when they leave up the up stairs.
* A monster with the Amulet would leave it behind
@@ -976,7 +976,7 @@ struct monst *mtmp;
if (is_animal(pm) || attacktype(pm, AT_EXPL) || mindless(mtmp->data)
|| pm->mlet == S_GHOST || pm->mlet == S_KOP)
return 0;
try_again:
try_again:
switch (rn2(8 + (difficulty > 3) + (difficulty > 6) + (difficulty > 8))) {
case 6:
case 9:
@@ -1772,7 +1772,7 @@ struct monst *mtmp;
(coord *) 0);
return 2;
} else {
skipmsg:
skipmsg:
if (vismon) {
pline("%s looks uneasy.", Monnam(mtmp));
if (!objects[POT_GAIN_LEVEL].oc_name_known
@@ -2354,7 +2354,7 @@ boolean by_you;
spells could toss pillar of fire at self--probably too suicidal] */
if (!mon->mcan && !mon->mspec_used
&& attacktype_fordmg(mptr, AT_BREA, AD_FIRE)) {
odummy = g.zeroobj; /* otyp == STRANGE_OBJECT */
odummy = cg.zeroobj; /* otyp == STRANGE_OBJECT */
return muse_unslime(mon, &odummy, (struct trap *) 0, by_you);
}
@@ -2393,7 +2393,7 @@ boolean by_you;
}
}
if (t && t->ttyp == FIRE_TRAP)
return muse_unslime(mon, &g.zeroobj, t, by_you);
return muse_unslime(mon, (struct obj *) &cg.zeroobj, t, by_you);
} /* MUSE */
+3 -3
View File
@@ -511,7 +511,7 @@ doclassdisco()
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
}
any = g.zeroany;
any = cg.zeroany;
menulet = 'a';
/* check whether we've discovered any unique objects */
@@ -667,7 +667,7 @@ rename_disco()
anything any;
menu_item *selected = 0;
any = g.zeroany;
any = cg.zeroany;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
@@ -719,7 +719,7 @@ rename_disco()
if (dis != STRANGE_OBJECT) {
struct obj odummy;
odummy = g.zeroobj;
odummy = cg.zeroobj;
odummy.otyp = dis;
odummy.oclass = objects[dis].oc_class;
odummy.quan = 1L;
+27 -27
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 objnam.c $NHDT-Date: 1546687293 2019/01/05 11:21:33 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.232 $ */
/* NetHack 3.6 objnam.c $NHDT-Date: 1547025168 2019/01/09 09:12:48 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.233 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */
@@ -700,7 +700,7 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */
if (has_oname(obj) && dknown) {
Strcat(buf, " named ");
nameit:
nameit:
Strcat(buf, ONAME(obj));
}
@@ -734,7 +734,7 @@ struct obj *obj;
/* caveat: this makes a lot of assumptions about which fields
are required in order for xname() to yield a sensible result */
bareobj = g.zeroobj;
bareobj = cg.zeroobj;
bareobj.otyp = otyp;
bareobj.oclass = obj->oclass;
bareobj.dknown = obj->dknown;
@@ -1078,7 +1078,7 @@ unsigned doname_flags;
goto charges;
break;
case WAND_CLASS:
charges:
charges:
if (known)
Sprintf(eos(bp), " (%d:%d)", (int) obj->recharged, obj->spe);
break;
@@ -1087,7 +1087,7 @@ unsigned doname_flags;
Strcat(bp, " (lit)");
break;
case RING_CLASS:
ring:
ring:
if (obj->owornmask & W_RINGR)
Strcat(bp, " (on right ");
if (obj->owornmask & W_RINGL)
@@ -2030,7 +2030,7 @@ register const char *verb;
return strcpy(buf, verb);
}
sing:
sing:
Strcpy(buf, verb);
len = (int) strlen(buf);
bspot = buf + len - 1;
@@ -2374,7 +2374,7 @@ const char *oldstr;
/* Default: append an 's' */
Strcasecpy(spot + 1, "s");
bottom:
bottom:
if (excess)
Strcat(str, excess);
return str;
@@ -2474,7 +2474,7 @@ const char *oldstr;
|| (p - 4 == bp && !strcmpi(p - 4, "lens"))) {
goto bottom;
}
mins:
mins:
*(p - 1) = '\0'; /* drop s */
} else { /* input doesn't end in 's' */
@@ -2498,7 +2498,7 @@ const char *oldstr;
/* here we cannot find the plural suffix */
}
bottom:
bottom:
/* if we stripped off a suffix (" of bar" from "foo of bar"),
put it back now [strcat() isn't actually 100% safe here...] */
if (excess)
@@ -2813,7 +2813,7 @@ char oclass;
* Return something wished for. Specifying a null pointer for
* the user request string results in a random object. Otherwise,
* if asking explicitly for "nothing" (or "nil") return no_wish;
* if not an object return &g.zeroobj; if an error (no matching object),
* if not an object return &cg.zeroobj; if an error (no matching object),
* return null.
*/
struct obj *
@@ -3371,7 +3371,7 @@ struct obj *no_wish;
}
}
retry:
retry:
/* "grey stone" check must be before general "stone" */
for (i = 0; i < SIZE(o_ranges); i++)
if (!strcmpi(bp, o_ranges[i].name)) {
@@ -3420,7 +3420,7 @@ retry:
actualn = bp;
if (!dn)
dn = actualn; /* ex. "skull cap" */
srch:
srch:
/* check real names of gems first */
if (!oclass && actualn) {
for (i = g.bases[GEM_CLASS]; i <= LAST_GEM; i++) {
@@ -3556,7 +3556,7 @@ srch:
* trap objects like beartraps.
* Disallow such topology tweaks for WIZKIT startup wishes.
*/
wiztrap:
wiztrap:
if (wizard && !g.program_state.wizkit_wishing) {
struct rm *lev;
int trap, x = u.ux, y = u.uy;
@@ -3578,7 +3578,7 @@ wiztrap:
(trap != MAGIC_PORTAL) ? "" : " to nowhere");
} else
pline("Creation of %s failed.", an(tname));
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
/* furniture and terrain */
@@ -3591,20 +3591,20 @@ wiztrap:
lev->blessedftn = 1;
pline("A %sfountain.", lev->blessedftn ? "magic " : "");
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
if (!BSTRCMPI(bp, p - 6, "throne")) {
lev->typ = THRONE;
pline("A throne.");
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
if (!BSTRCMPI(bp, p - 4, "sink")) {
lev->typ = SINK;
g.level.flags.nsinks++;
pline("A sink.");
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
/* ("water" matches "potion of water" rather than terrain) */
if (!BSTRCMPI(bp, p - 4, "pool") || !BSTRCMPI(bp, p - 4, "moat")) {
@@ -3614,7 +3614,7 @@ wiztrap:
/* Must manually make kelp! */
water_damage_chain(g.level.objects[x][y], TRUE);
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
if (!BSTRCMPI(bp, p - 4, "lava")) { /* also matches "molten lava" */
lev->typ = LAVAPOOL;
@@ -3623,7 +3623,7 @@ wiztrap:
if (!(Levitation || Flying))
(void) lava_effects();
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
if (!BSTRCMPI(bp, p - 5, "altar")) {
@@ -3643,7 +3643,7 @@ wiztrap:
lev->altarmask = Align2amask(al);
pline("%s altar.", An(align_str(al)));
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
if (!BSTRCMPI(bp, p - 5, "grave")
@@ -3652,7 +3652,7 @@ wiztrap:
pline("%s.", IS_GRAVE(lev->typ) ? "A grave"
: "Can't place a grave here");
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
if (!BSTRCMPI(bp, p - 4, "tree")) {
@@ -3660,14 +3660,14 @@ wiztrap:
pline("A tree.");
newsym(x, y);
block_point(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
if (!BSTRCMPI(bp, p - 4, "bars")) {
lev->typ = IRONBARS;
pline("Iron bars.");
newsym(x, y);
return &g.zeroobj;
return (struct obj *) &cg.zeroobj;
}
}
@@ -3683,10 +3683,10 @@ wiztrap:
if (!oclass)
return ((struct obj *) 0);
any:
any:
if (!oclass)
oclass = wrpsym[rn2((int) sizeof(wrpsym))];
typfnd:
oclass = wrpsym[rn2((int) sizeof wrpsym)];
typfnd:
if (typ)
oclass = objects[typ].oc_class;
@@ -3976,7 +3976,7 @@ typfnd:
|| (otmp->oartifact && rn2(nartifact_exist()) > 1)) && !wizard) {
artifact_exists(otmp, safe_oname(otmp), FALSE);
obfree(otmp, (struct obj *) 0);
otmp = &g.zeroobj;
otmp = (struct obj *) &cg.zeroobj;
pline("For a moment, you feel %s in your %s, but it disappears!",
something, makeplural(body_part(HAND)));
}
+28 -28
View File
@@ -1437,7 +1437,7 @@ const char *prompt;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(colornames); i++) {
if (!colornames[i].name)
break;
@@ -1483,7 +1483,7 @@ const char *prompt;
default_attr = iflags.menu_headings;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(attrnames); i++) {
if (!attrnames[i].name)
break;
@@ -1582,7 +1582,7 @@ query_msgtype()
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(msgtype_names); i++)
if (msgtype_names[i].descr) {
any.a_int = msgtype_names[i].msgtyp + 1;
@@ -4225,7 +4225,7 @@ int indexoffset; /* value to add to index in compopt[], or zero
anything any;
int i;
any = g.zeroany;
any = cg.zeroany;
if (indexoffset == 0) {
any.a_int = 0;
value = get_compopt_value(option, buf2);
@@ -4262,7 +4262,7 @@ char *bufx;
int nset;
{
char buf[BUFSZ], buf2[BUFSZ];
anything any = g.zeroany;
anything any = cg.zeroany;
any.a_int = id;
if (!bufx)
@@ -4362,7 +4362,7 @@ doset() /* changing options via menu by Per Liboriussen */
made_fmtstr = TRUE;
}
any = g.zeroany;
any = cg.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Booleans (selecting will toggle value):", MENU_UNSELECTED);
any.a_int = 0;
@@ -4393,7 +4393,7 @@ doset() /* changing options via menu by Per Liboriussen */
boolcount = i;
indexoffset = boolcount;
any = g.zeroany;
any = cg.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Compounds (selecting will prompt for new value):",
@@ -4422,7 +4422,7 @@ doset() /* changing options via menu by Per Liboriussen */
(pass == DISP_IN_GAME) ? 0 : indexoffset);
}
any = g.zeroany;
any = cg.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Other settings:", MENU_UNSELECTED);
@@ -4436,7 +4436,7 @@ doset() /* changing options via menu by Per Liboriussen */
}
#ifdef PREFIXES_IN_USE
any = g.zeroany;
any = cg.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
"Variable playground locations:", MENU_UNSELECTED);
@@ -4535,7 +4535,7 @@ int numtotal;
opt_idx = 0;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(action_titles); i++) {
char tmpbuf[BUFSZ];
@@ -4581,7 +4581,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(menutype); i++) {
style_name = menutype[i];
/* note: separate `style_name' variable used
@@ -4601,7 +4601,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; paranoia[i].flagmask != 0; ++i) {
if (paranoia[i].flagmask == PARANOID_BONES && !wizard)
continue;
@@ -4633,7 +4633,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(burdentype); i++) {
burden_name = burdentype[i];
any.a_int = i + 1;
@@ -4664,7 +4664,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < NUM_DISCLOSURE_OPTIONS; i++) {
Sprintf(buf, "%-12s[%c%c]", disclosure_names[i],
flags.end_disclose[i], disclosure_options[i]);
@@ -4692,7 +4692,7 @@ boolean setinitial, setfromfile;
disclosure_names[i]);
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
/* 'y','n',and '+' work as alternate selectors; '-' doesn't */
any.a_char = DISCLOSE_NO_WITHOUT_PROMPT;
add_menu(tmpwin, NO_GLYPH, &any, 0, any.a_char, ATR_NONE,
@@ -4741,7 +4741,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(runmodes); i++) {
mode_name = runmodes[i];
any.a_int = i + 1;
@@ -4761,7 +4761,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
any.a_char = GPCOORDS_COMPASS;
add_menu(tmpwin, NO_GLYPH, &any, GPCOORDS_COMPASS, 0, ATR_NONE,
"compass ('east' or '3s' or '2n,4w')",
@@ -4820,7 +4820,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
any.a_char = (GFILTER_NONE + 1);
add_menu(tmpwin, NO_GLYPH, &any, 'n',
0, ATR_NONE, "no filtering",
@@ -4851,7 +4851,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
any.a_char = 's';
add_menu(tmpwin, NO_GLYPH, &any, 's', 0, ATR_NONE, "single",
MENU_UNSELECTED);
@@ -4877,7 +4877,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(sortltype); i++) {
sortl_name = sortltype[i];
any.a_char = *sortl_name;
@@ -4904,7 +4904,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
any.a_int = ALIGN_TOP;
add_menu(tmpwin, NO_GLYPH, &any, 't', 0, ATR_NONE, "top",
MENU_UNSELECTED);
@@ -4939,7 +4939,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(npchoices); i++) {
any.a_int = i + 1;
add_menu(tmpwin, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE,
@@ -5015,7 +5015,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
mt_idx = 0;
while (tmp) {
mtype = msgtype2name(tmp->msgtype);
@@ -5083,7 +5083,7 @@ boolean setinitial, setfromfile;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
mc_idx = 0;
while (tmp) {
sattr = attr2attrname(tmp->attr);
@@ -5161,7 +5161,7 @@ boolean setinitial, setfromfile;
if (numapes[pass] == 0)
continue;
ape = iflags.autopickup_exceptions[pass];
any = g.zeroany;
any = cg.zeroany;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
(pass == 0) ? "Never pickup" : "Always pickup",
MENU_UNSELECTED);
@@ -5234,7 +5234,7 @@ boolean setinitial, setfromfile;
Sprintf(fmtstr, "%%-%ds %%s", biggest + 5);
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany;
any = cg.zeroany;
any.a_int = 1;
add_menu(tmpwin, NO_GLYPH, &any, 0, 0, ATR_NONE,
"Default Symbols", MENU_UNSELECTED);
@@ -6269,7 +6269,7 @@ char *class_select;
return 0;
accelerator = 0;
next_accelerator = 'a';
any = g.zeroany;
any = cg.zeroany;
win = create_nhwindow(NHW_MENU);
start_menu(win);
while (*class_list) {
@@ -6311,7 +6311,7 @@ char *class_select;
}
if (category == 1 && next_accelerator <= 'z') {
/* for objects, add "A - ' ' all classes", after a separator */
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
any.a_int = (int) ' ';
Sprintf(buf, "%c %s", (char) any.a_int, "all classes of objects");
+3 -3
View File
@@ -1091,7 +1091,7 @@ coord *click_cc;
winid win;
anything any;
any = g.zeroany;
any = cg.zeroany;
win = create_nhwindow(NHW_MENU);
start_menu(win);
any.a_char = '/';
@@ -1109,7 +1109,7 @@ coord *click_cc;
flags.lootabc ? 0 : any.a_char, 'n', ATR_NONE,
"something else (by symbol or name)", MENU_UNSELECTED);
if (!u.uswallow && !Hallucination) {
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
"", MENU_UNSELECTED);
/* these options work sensibly for the swallowed case,
@@ -1956,7 +1956,7 @@ dohelp()
anything any;
int sel;
any = g.zeroany; /* zero all bits */
any = cg.zeroany; /* zero all bits */
start_menu(tmpwin);
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);
start_menu(win);
any = g.zeroany;
any = cg.zeroany;
/*
* Run through the list and add the objects to the menu. If
* 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 sorting, print type name (once only) */
if (sorted && !printed_type_name) {
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
let_to_name(*pack, FALSE,
((how != PICK_NONE)
@@ -917,14 +917,14 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
if (engulfer) {
char buf[BUFSZ];
any = g.zeroany;
any = cg.zeroany;
if (sorted && n > 1) {
Sprintf(buf, "%s Creatures",
is_animal(u.ustuck->data) ? "Swallowed" : "Engulfed");
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings, buf,
MENU_UNSELECTED);
}
fake_hero_object = g.zeroobj;
fake_hero_object = cg.zeroobj;
fake_hero_object.quan = 1L; /* not strictly necessary... */
any.a_obj = &fake_hero_object;
add_menu(win, mon_to_glyph(&g.youmonst), &any,
@@ -959,7 +959,7 @@ boolean FDECL((*allow), (OBJ_P)); /* allow function */
n = 0;
} else if (k < n) {
/* other stuff plus fake_hero; last slot is now unused */
(*pick_list)[k].item = g.zeroany;
(*pick_list)[k].item = cg.zeroany;
(*pick_list)[k].count = 0L;
n = k;
}
@@ -1046,20 +1046,20 @@ int how; /* type of query */
if (qflags & CHOOSE_ALL) {
invlet = 'A';
any = g.zeroany;
any = cg.zeroany;
any.a_int = 'A';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
(qflags & WORN_TYPES) ? "Auto-select every item being worn"
: "Auto-select every item",
MENU_UNSELECTED);
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
}
if ((qflags & ALL_TYPES) && (ccount > 1)) {
invlet = 'a';
any = g.zeroany;
any = cg.zeroany;
any.a_int = ALL_TYPES_SELECTED;
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
(qflags & WORN_TYPES) ? "All worn types" : "All types",
@@ -1074,7 +1074,7 @@ int how; /* type of query */
if (ofilter && !(*ofilter)(curr))
continue;
if (!collected_type_name) {
any = g.zeroany;
any = cg.zeroany;
any.a_int = curr->oclass;
add_menu(
win, NO_GLYPH, &any, invlet++,
@@ -1096,14 +1096,14 @@ int how; /* type of query */
if (do_unpaid || (qflags & BILLED_TYPES) || do_blessed || do_cursed
|| do_uncursed || do_buc_unknown) {
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "", MENU_UNSELECTED);
}
/* unpaid items if there are any */
if (do_unpaid) {
invlet = 'u';
any = g.zeroany;
any = cg.zeroany;
any.a_int = 'u';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE, "Unpaid items",
MENU_UNSELECTED);
@@ -1111,7 +1111,7 @@ int how; /* type of query */
/* billed items: checked by caller, so always include if BILLED_TYPES */
if (qflags & BILLED_TYPES) {
invlet = 'x';
any = g.zeroany;
any = cg.zeroany;
any.a_int = 'x';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"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 */
if (do_blessed) {
invlet = 'B';
any = g.zeroany;
any = cg.zeroany;
any.a_int = 'B';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items known to be Blessed", MENU_UNSELECTED);
}
if (do_cursed) {
invlet = 'C';
any = g.zeroany;
any = cg.zeroany;
any.a_int = 'C';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items known to be Cursed", MENU_UNSELECTED);
}
if (do_uncursed) {
invlet = 'U';
any = g.zeroany;
any = cg.zeroany;
any.a_int = 'U';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items known to be Uncursed", MENU_UNSELECTED);
}
if (do_buc_unknown) {
invlet = 'X';
any = g.zeroany;
any = cg.zeroany;
any.a_int = 'X';
add_menu(win, NO_GLYPH, &any, invlet, 0, ATR_NONE,
"Items of unknown Bless/Curse status", MENU_UNSELECTED);
@@ -1947,7 +1947,7 @@ reverse_loot()
coffers->owt = weight(coffers);
coffers->cknown = 0;
if (!coffers->olocked) {
boxdummy = g.zeroobj, boxdummy.otyp = SPE_WIZARD_LOCK;
boxdummy = cg.zeroobj, boxdummy.otyp = SPE_WIZARD_LOCK;
(void) boxlock(coffers, &boxdummy);
}
} else if (levl[x][y].looted != T_LOOTED
@@ -2846,7 +2846,7 @@ boolean outokay, inokay, alreadyused, more_containers;
int n;
const char *menuselector = flags.lootabc ? abc_chars : lootchars;
any = g.zeroany;
any = cg.zeroany;
win = create_nhwindow(NHW_MENU);
start_menu(win);
@@ -2943,7 +2943,7 @@ dotip()
menu_item *pick_list = (menu_item *) 0;
struct obj dummyobj, *otmp;
any = g.zeroany;
any = cg.zeroany;
win = create_nhwindow(NHW_MENU);
start_menu(win);
@@ -2956,7 +2956,7 @@ dotip()
doname(cobj), MENU_UNSELECTED);
}
if (g.invent) {
any = g.zeroany;
any = cg.zeroany;
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
"", MENU_UNSELECTED);
any.a_obj = &dummyobj;
+1 -1
View File
@@ -2223,7 +2223,7 @@ more_dips:
if (!objects[old_otyp].oc_uname
&& !objects[old_otyp].oc_name_known && old_dknown) {
struct obj fakeobj;
fakeobj = g.zeroobj;
fakeobj = cg.zeroobj;
fakeobj.dknown = 1;
fakeobj.otyp = old_otyp;
fakeobj.oclass = POTION_CLASS;
+3 -3
View File
@@ -127,7 +127,7 @@ int nrect;
reg->n_monst = 0;
reg->max_monst = 0;
reg->monsters = (unsigned int *) 0;
reg->arg = g.zeroany;
reg->arg = cg.zeroany;
return reg;
}
@@ -926,7 +926,7 @@ genericptr_t p2 UNUSED;
/* If it was a thick cloud, it dissipates a little first */
if (damage >= 5) {
damage /= 2; /* It dissipates, let's do less damage */
reg->arg = g.zeroany;
reg->arg = cg.zeroany;
reg->arg.a_int = damage;
reg->ttl = 2L; /* Here's the trick : reset ttl */
return FALSE; /* THEN return FALSE, means "still there" */
@@ -1038,7 +1038,7 @@ int damage;
set_heros_fault(cloud); /* assume player has created it */
cloud->inside_f = INSIDE_GAS_CLOUD;
cloud->expire_f = EXPIRE_GAS_CLOUD;
cloud->arg = g.zeroany;
cloud->arg = cg.zeroany;
cloud->arg.a_int = damage;
cloud->visible = TRUE;
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) {
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany; /* no selection */
any = cg.zeroany; /* no selection */
if (bannerwin != WIN_ERR) {
/* for tty; erase copyright notice and redo it in the menu */
clear_nhwindow(bannerwin);
+1 -1
View File
@@ -1887,7 +1887,7 @@ boolean preselect;
break;
}
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
if (constrainer) {
any.a_int = 0;
/* use four spaces of padding to fake a grayed out menu choice */
+2 -2
View File
@@ -1557,7 +1557,7 @@ spellsortmenu()
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
for (i = 0; i < SIZE(spl_sortchoices); i++) {
if (i == SORTRETAINORDER) {
@@ -1640,7 +1640,7 @@ int *spell_no;
tmpwin = create_nhwindow(NHW_MENU);
start_menu(tmpwin);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
/*
* The correct spacing of the columns when not using
+2 -2
View File
@@ -126,7 +126,7 @@ unsigned entflags;
/* default to player's original monster type */
mdat = &mons[u.umonster];
}
fakemon = g.zeromonst;
fakemon = cg.zeromonst;
set_mon_data(&fakemon, mdat, -1); /* set up for goodpos */
good_ptr = good;
@@ -548,7 +548,7 @@ dotelecmd()
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < SIZE(tports); ++i) {
any.a_int = (int) tports[i].menulet;
add_menu(win, NO_GLYPH, &any, (char) any.a_int, 0, ATR_NONE,
+3 -3
View File
@@ -2105,7 +2105,7 @@ timer_element *timer;
{
anything arg_save;
arg_save = g.zeroany;
arg_save = cg.zeroany;
switch (timer->kind) {
case TIMER_GLOBAL:
case TIMER_LEVEL:
@@ -2119,7 +2119,7 @@ timer_element *timer;
else {
/* replace object pointer with id */
arg_save.a_obj = timer->arg.a_obj;
timer->arg = g.zeroany;
timer->arg = cg.zeroany;
timer->arg.a_uint = (arg_save.a_obj)->o_id;
timer->needs_fixup = 1;
bwrite(fd, (genericptr_t) timer, sizeof(timer_element));
@@ -2134,7 +2134,7 @@ timer_element *timer;
else {
/* replace monster pointer with id */
arg_save.a_monst = timer->arg.a_monst;
timer->arg = g.zeroany;
timer->arg = cg.zeroany;
timer->arg.a_uint = (arg_save.a_monst)->m_id;
timer->needs_fixup = 1;
bwrite(fd, (genericptr_t) timer, sizeof(timer_element));
+2 -2
View File
@@ -3260,8 +3260,8 @@ domagictrap()
struct obj pseudo;
long save_conf = HConfusion;
pseudo = g.zeroobj; /* neither cursed nor blessed,
and zero out oextra */
pseudo = cg.zeroobj; /* neither cursed nor blessed,
and zero out oextra */
pseudo.otyp = SCR_REMOVE_CURSE;
HConfusion = 0L;
(void) seffects(&pseudo);
+15 -14
View File
@@ -1,4 +1,4 @@
/* NetHack 3.6 weapon.c $NHDT-Date: 1545964580 2018/12/28 02:36:20 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.67 $ */
/* NetHack 3.6 weapon.c $NHDT-Date: 1547025169 2019/01/09 09:12:49 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.68 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */
@@ -400,7 +400,7 @@ register struct monst *mtmp;
char mlet = mtmp->data->mlet;
g.propellor = &g.zeroobj;
g.propellor = (struct obj *) &cg.zeroobj;
Oselect(EGG); /* cockatrice egg */
if (mlet == S_KOP) /* pies are first choice for Kops */
Oselect(CREAM_PIE);
@@ -459,32 +459,32 @@ register struct monst *mtmp;
}
/* KMH -- This belongs here so darts will work */
g.propellor = &g.zeroobj;
g.propellor = (struct obj *) &cg.zeroobj;
prop = (objects[rwep[i]]).oc_skill;
prop = objects[rwep[i]].oc_skill;
if (prop < 0) {
switch (-prop) {
case P_BOW:
g.propellor = (oselect(mtmp, YUMI));
g.propellor = oselect(mtmp, YUMI);
if (!g.propellor)
g.propellor = (oselect(mtmp, ELVEN_BOW));
g.propellor = oselect(mtmp, ELVEN_BOW);
if (!g.propellor)
g.propellor = (oselect(mtmp, BOW));
g.propellor = oselect(mtmp, BOW);
if (!g.propellor)
g.propellor = (oselect(mtmp, ORCISH_BOW));
g.propellor = oselect(mtmp, ORCISH_BOW);
break;
case P_SLING:
g.propellor = (oselect(mtmp, SLING));
g.propellor = oselect(mtmp, SLING);
break;
case P_CROSSBOW:
g.propellor = (oselect(mtmp, CROSSBOW));
g.propellor = oselect(mtmp, CROSSBOW);
}
if ((otmp = MON_WEP(mtmp)) && mwelded(otmp) && otmp != g.propellor
&& mtmp->weapon_check == NO_WEAPON_WANTED)
g.propellor = 0;
}
/* propellor = obj, propellor to use
* propellor = &g.zeroobj, doesn't need a propellor
* propellor = &cg.zeroobj, doesn't need a propellor
* propellor = 0, needed one and didn't have one
*/
if (g.propellor != 0) {
@@ -677,8 +677,9 @@ register struct monst *mon;
mon_nam(mon));
return 0;
}
if (obj && obj != &g.zeroobj) {
if (obj && obj != &cg.zeroobj) {
struct obj *mw_tmp = MON_WEP(mon);
if (mw_tmp && mw_tmp->otyp == obj->otyp) {
/* already wielding it */
mon->weapon_check = NEED_WEAPON;
@@ -1059,7 +1060,7 @@ enhance_weapon_skill()
/* start with a legend if any entries will be annotated
with "*" or "#" below */
if (eventually_advance > 0 || maxxed_cnt > 0) {
any = g.zeroany;
any = cg.zeroany;
if (eventually_advance > 0) {
Sprintf(buf, "(Skill%s flagged by \"*\" may be enhanced %s.)",
plur(eventually_advance),
@@ -1088,7 +1089,7 @@ enhance_weapon_skill()
for (i = skill_ranges[pass].first; i <= skill_ranges[pass].last;
i++) {
/* Print headings for skill types */
any = g.zeroany;
any = cg.zeroany;
if (i == skill_ranges[pass].first)
add_menu(win, NO_GLYPH, &any, 0, 0, iflags.menu_headings,
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.
* 4. Putting an item that was thrown and returned back into the slot.
* 5. Emptying the slot, by passing a null object. NEVER pass
* g.zeroobj!
* cg.zeroobj!
*
* 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
@@ -285,7 +285,7 @@ dowield()
}
/* Handle no object, or object in other slot */
if (wep == &g.zeroobj)
if (wep == &cg.zeroobj)
wep = (struct obj *) 0;
else if (wep == uswapwep)
return doswapweapon();
@@ -378,7 +378,7 @@ dowieldquiver()
if (!newquiver) {
/* Cancelled */
return 0;
} else if (newquiver == &g.zeroobj) { /* no object */
} else if (newquiver == &cg.zeroobj) { /* no object */
/* Explicitly nothing */
if (uquiver) {
You("now have no ammunition readied.");
+3 -3
View File
@@ -5208,7 +5208,7 @@ makewish()
int tries = 0;
promptbuf[0] = '\0';
nothing = g.zeroobj; /* lint suppression; only its address matters */
nothing = cg.zeroobj; /* lint suppression; only its address matters */
if (flags.verbose)
You("may wish for an object.");
retry:
@@ -5226,7 +5226,7 @@ retry:
}
/*
* Note: if they wished for and got a non-object successfully,
* otmp == &g.zeroobj. That includes gold, or an artifact that
* otmp == &cg.zeroobj. That includes gold, or an artifact that
* has been denied. Wishing for "nothing" requires a separate
* value to remain distinct.
*/
@@ -5248,7 +5248,7 @@ retry:
/* KMH, conduct */
u.uconduct.wishes++;
if (otmp != &g.zeroobj) {
if (otmp != &cg.zeroobj) {
const char
*verb = ((Is_airlevel(&u.uz) || u.uinwater) ? "slip" : "drop"),
*oops_msg = (u.uswallow
+11 -11
View File
@@ -522,7 +522,7 @@ tty_player_selection()
setup_rolemenu(win, TRUE, RACE, GEND, ALGN);
/* add miscellaneous menu entries */
role_menu_extra(ROLE_RANDOM, win, TRUE);
any = g.zeroany; /* separator, not a choice */
any = cg.zeroany; /* separator, not a choice */
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
MENU_UNSELECTED);
role_menu_extra(RS_RACE, win, FALSE);
@@ -616,7 +616,7 @@ tty_player_selection()
role_selection_prolog(RS_RACE, BASE_WINDOW);
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
/* populate the menu with role choices */
setup_racemenu(win, TRUE, ROLE, GEND, ALGN);
/* add miscellaneous menu entries */
@@ -709,7 +709,7 @@ tty_player_selection()
role_selection_prolog(RS_GENDER, BASE_WINDOW);
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
/* populate the menu with gender choices */
setup_gendmenu(win, TRUE, ROLE, RACE, ALGN);
/* add miscellaneous menu entries */
@@ -800,7 +800,7 @@ tty_player_selection()
role_selection_prolog(RS_ALGNMNT, BASE_WINDOW);
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
setup_algnmenu(win, TRUE, ROLE, RACE, GEND);
role_menu_extra(ROLE_RANDOM, win, TRUE);
any.a_int = 0; /* separator, not a choice */
@@ -880,7 +880,7 @@ tty_player_selection()
role_selection_prolog(ROLE_NONE, BASE_WINDOW);
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
any.a_int = 0;
if (!roles[ROLE].name.f
&& (roles[ROLE].allow & ROLE_GENDMASK)
@@ -982,7 +982,7 @@ reset_role_filtering()
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany;
any = cg.zeroany;
/* no extra blank line preceding this entry; end_menu supplies one */
add_menu(win, NO_GLYPH, &any, 0, 0, ATR_NONE,
@@ -1037,7 +1037,7 @@ int race, gend, algn; /* all ROLE_NONE for !filtering case */
boolean role_ok;
char thisch, lastch = '\0', rolenamebuf[50];
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) {
role_ok = ok_role(i, race, gend, algn);
if (filtering && !role_ok)
@@ -1080,7 +1080,7 @@ int role, gend, algn;
int i;
char this_ch;
any = g.zeroany;
any = cg.zeroany;
for (i = 0; races[i].noun; i++) {
race_ok = ok_race(role, i, gend, algn);
if (filtering && !race_ok)
@@ -1113,7 +1113,7 @@ int role, race, algn;
int i;
char this_ch;
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < ROLE_GENDERS; i++) {
gend_ok = ok_gend(role, race, i, algn);
if (filtering && !gend_ok)
@@ -1144,7 +1144,7 @@ int role, race, gend;
int i;
char this_ch;
any = g.zeroany;
any = cg.zeroany;
for (i = 0; i < ROLE_ALIGNS; i++) {
algn_ok = ok_align(role, race, gend, i);
if (filtering && !algn_ok)
@@ -2904,7 +2904,7 @@ const char *prompt; /* prompt to for menu */
if (prompt) {
anything any;
any = g.zeroany; /* not selectable */
any = cg.zeroany; /* not selectable */
tty_add_menu(window, NO_GLYPH, &any, 0, 0, ATR_NONE, "",
MENU_UNSELECTED);
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 */
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
for (i = 0; roles[i].name.m; i++) {
if (ok_role(i, flags.initrace, flags.initgend,
flags.initalign)) {
@@ -495,7 +495,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
for (i = 0; races[i].noun; i++)
if (ok_race(flags.initrole, i, flags.initgend,
flags.initalign)) {
@@ -569,7 +569,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_GENDERS; i++)
if (ok_gend(flags.initrole, flags.initrace, i,
flags.initalign)) {
@@ -642,7 +642,7 @@ prompt_for_player_selection(void)
/* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */
win = create_nhwindow(NHW_MENU);
start_menu(win);
any = g.zeroany; /* zero out all bits */
any = cg.zeroany; /* zero out all bits */
for (i = 0; i < ROLE_ALIGNS; i++)
if (ok_align(flags.initrole, flags.initrace,
flags.initgend, i)) {